home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: Alpha / Whiteline Alpha.iso / progtool / c / gcc / gcc258s.zoo / cp-parse.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-01-30  |  303.7 KB  |  7,484 lines

  1.  
  2. /*  A Bison parser, made from cp-parse.y with Bison version GNU Bison version 1.20
  3.   */
  4.  
  5. #define YYBISON 1  /* Identify Bison output.  */
  6.  
  7. #define    IDENTIFIER    258
  8. #define    TYPENAME    259
  9. #define    SCOPED_TYPENAME    260
  10. #define    SCSPEC    261
  11. #define    TYPESPEC    262
  12. #define    TYPE_QUAL    263
  13. #define    CONSTANT    264
  14. #define    STRING    265
  15. #define    ELLIPSIS    266
  16. #define    SIZEOF    267
  17. #define    ENUM    268
  18. #define    IF    269
  19. #define    ELSE    270
  20. #define    WHILE    271
  21. #define    DO    272
  22. #define    FOR    273
  23. #define    SWITCH    274
  24. #define    CASE    275
  25. #define    DEFAULT    276
  26. #define    BREAK    277
  27. #define    CONTINUE    278
  28. #define    RETURN    279
  29. #define    GOTO    280
  30. #define    ASM_KEYWORD    281
  31. #define    GCC_ASM_KEYWORD    282
  32. #define    TYPEOF    283
  33. #define    ALIGNOF    284
  34. #define    HEADOF    285
  35. #define    CLASSOF    286
  36. #define    ATTRIBUTE    287
  37. #define    EXTENSION    288
  38. #define    LABEL    289
  39. #define    AGGR    290
  40. #define    VISSPEC    291
  41. #define    DELETE    292
  42. #define    NEW    293
  43. #define    OVERLOAD    294
  44. #define    THIS    295
  45. #define    OPERATOR    296
  46. #define    LEFT_RIGHT    297
  47. #define    TEMPLATE    298
  48. #define    TYPEID    299
  49. #define    DYNAMIC_CAST    300
  50. #define    SCOPE    301
  51. #define    START_DECLARATOR    302
  52. #define    EMPTY    303
  53. #define    TYPENAME_COLON    304
  54. #define    ASSIGN    305
  55. #define    RANGE    306
  56. #define    OROR    307
  57. #define    ANDAND    308
  58. #define    MIN_MAX    309
  59. #define    EQCOMPARE    310
  60. #define    ARITHCOMPARE    311
  61. #define    LSHIFT    312
  62. #define    RSHIFT    313
  63. #define    UNARY    314
  64. #define    PLUSPLUS    315
  65. #define    MINUSMINUS    316
  66. #define    HYPERUNARY    317
  67. #define    PAREN_STAR_PAREN    318
  68. #define    POINTSAT    319
  69. #define    POINTSAT_STAR    320
  70. #define    DOT_STAR    321
  71. #define    RAISE    322
  72. #define    RAISES    323
  73. #define    RERAISE    324
  74. #define    TRY    325
  75. #define    EXCEPT    326
  76. #define    CATCH    327
  77. #define    THROW    328
  78. #define    ANSI_TRY    329
  79. #define    ANSI_THROW    330
  80. #define    TYPENAME_ELLIPSIS    331
  81. #define    PTYPENAME    332
  82. #define    PRE_PARSED_FUNCTION_DECL    333
  83. #define    EXTERN_LANG_STRING    334
  84. #define    ALL    335
  85. #define    PRE_PARSED_CLASS_DECL    336
  86. #define    TYPENAME_DEFN    337
  87. #define    IDENTIFIER_DEFN    338
  88. #define    PTYPENAME_DEFN    339
  89. #define    END_OF_SAVED_INPUT    340
  90.  
  91. #line 42 "cp-parse.y"
  92.  
  93. #if defined(GATHER_STATISTICS) || defined(SPEW_DEBUG)
  94. #undef YYDEBUG
  95. #define YYDEBUG 1
  96. #endif
  97.  
  98. #include "config.h"
  99.  
  100. #include <stdio.h>
  101. #include <errno.h>
  102.  
  103. #include "tree.h"
  104. #include "input.h"
  105. #include "flags.h"
  106. #include "cp-lex.h"
  107. #include "cp-tree.h"
  108.  
  109. /* Since parsers are distinct for each language, put the language string
  110.    definition here.  (fnf) */
  111. char *language_string = "GNU C++";
  112.  
  113. extern tree void_list_node;
  114. extern struct obstack permanent_obstack;
  115.  
  116. #ifndef errno
  117. extern int errno;
  118. #endif
  119.  
  120. extern int end_of_file;
  121.  
  122. void yyerror ();
  123.  
  124. /* Like YYERROR but do call yyerror.  */
  125. #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
  126.  
  127. static void position_after_white_space ();
  128.  
  129. /* Contains the statement keyword (if/while/do) to include in an
  130.    error message if the user supplies an empty conditional expression.  */
  131. static char *cond_stmt_keyword;
  132.  
  133. /* Nonzero if we have an `extern "C"' acting as an extern specifier.  */
  134. int have_extern_spec;
  135. int used_extern_spec;
  136.  
  137. void yyhook ();
  138.  
  139. /* Cons up an empty parameter list.  */
  140. #ifdef __GNUC__
  141. __inline
  142. #endif
  143. static tree
  144. empty_parms ()
  145. {
  146.   tree parms;
  147.  
  148.   if (strict_prototype)
  149.     parms = void_list_node;
  150.   else
  151.     parms = NULL_TREE;
  152.   return parms;
  153. }
  154.  
  155. #line 108 "cp-parse.y"
  156. typedef union {long itype; tree ttype; char *strtype; enum tree_code code; } YYSTYPE;
  157. #line 269 "cp-parse.y"
  158.  
  159. /* List of types and structure classes of the current declaration.  */
  160. static tree current_declspecs;
  161.  
  162. /* When defining an aggregate, this is the most recent one being defined.  */
  163. static tree current_aggr;
  164.  
  165. /* Tell yyparse how to print a token's value, if yydebug is set.  */
  166.  
  167. #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
  168. extern void yyprint ();
  169. extern tree combine_strings        PROTO((tree));
  170. extern tree truthvalue_conversion    PROTO((tree));
  171.  
  172. #ifndef YYLTYPE
  173. typedef
  174.   struct yyltype
  175.     {
  176.       int timestamp;
  177.       int first_line;
  178.       int first_column;
  179.       int last_line;
  180.       int last_column;
  181.       char *text;
  182.    }
  183.   yyltype;
  184.  
  185. #define YYLTYPE yyltype
  186. #endif
  187.  
  188. #include <stdio.h>
  189.  
  190. #ifndef __cplusplus
  191. #ifndef __STDC__
  192. #define const
  193. #endif
  194. #endif
  195.  
  196.  
  197.  
  198. #define    YYFINAL        1342
  199. #define    YYFLAG        -32768
  200. #define    YYNTBASE    110
  201.  
  202. #define YYTRANSLATE(x) ((unsigned)(x) <= 340 ? yytranslate[x] : 311)
  203.  
  204. static const char yytranslate[] = {     0,
  205.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  206.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  207.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  208.      2,     2,   108,     2,     2,     2,    73,    61,     2,    83,
  209.    104,    71,    69,    51,    70,    81,    72,     2,     2,     2,
  210.      2,     2,     2,     2,     2,     2,     2,    55,   105,    65,
  211.     53,    66,    54,     2,     2,     2,     2,     2,     2,     2,
  212.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  213.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  214.     84,     2,   109,    60,     2,     2,     2,     2,     2,     2,
  215.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  216.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  217.      2,     2,    50,    59,   106,   107,     2,     2,     2,     2,
  218.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  219.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  220.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  221.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  222.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  223.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  224.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  225.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  226.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  227.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  228.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  229.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  230.      2,     2,     2,     2,     2,     1,     2,     3,     4,     5,
  231.      6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
  232.     16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
  233.     26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
  234.     36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
  235.     46,    47,    48,    49,    52,    56,    57,    58,    62,    63,
  236.     64,    67,    68,    74,    75,    76,    77,    78,    79,    80,
  237.     82,    85,    86,    87,    88,    89,    90,    91,    92,    93,
  238.     94,    95,    96,    97,    98,    99,   100,   101,   102,   103
  239. };
  240.  
  241. #if YYDEBUG != 0
  242. static const short yyprhs[] = {     0,
  243.      0,     1,     3,     4,     7,    10,    11,    12,    14,    16,
  244.     18,    20,    22,    24,    30,    35,    39,    44,    49,    51,
  245.     52,    58,    60,    64,    67,    72,    76,    78,    82,    84,
  246.     88,    89,    95,    96,   102,   103,   109,   110,   116,   120,
  247.    124,   131,   139,   144,   148,   152,   154,   156,   158,   160,
  248.    162,   165,   169,   173,   177,   181,   184,   187,   190,   193,
  249.    195,   199,   204,   208,   214,   219,   223,   227,   230,   234,
  250.    238,   241,   248,   255,   260,   265,   267,   274,   279,   283,
  251.    290,   295,   299,   302,   305,   307,   311,   316,   319,   323,
  252.    324,   325,   327,   331,   334,   338,   340,   345,   348,   353,
  253.    356,   361,   364,   370,   374,   376,   378,   380,   382,   384,
  254.    386,   388,   390,   392,   395,   397,   401,   406,   411,   413,
  255.    415,   416,   417,   419,   423,   425,   427,   428,   435,   436,
  256.    438,   439,   442,   444,   446,   448,   450,   452,   454,   456,
  257.    458,   462,   464,   468,   469,   471,   473,   474,   483,   485,
  258.    486,   490,   496,   502,   505,   508,   513,   518,   520,   522,
  259.    526,   530,   532,   533,   537,   540,   543,   546,   549,   552,
  260.    555,   560,   563,   568,   572,   579,   586,   593,   603,   608,
  261.    616,   622,   631,   641,   651,   658,   668,   675,   685,   689,
  262.    696,   699,   704,   710,   712,   717,   725,   730,   735,   740,
  263.    742,   746,   750,   754,   758,   762,   766,   770,   774,   778,
  264.    782,   786,   790,   794,   798,   802,   806,   810,   816,   820,
  265.    824,   828,   831,   833,   835,   837,   839,   843,   847,   848,
  266.    853,   854,   861,   864,   869,   872,   876,   879,   882,   884,
  267.    889,   894,   897,   905,   910,   915,   921,   925,   928,   931,
  268.    934,   940,   944,   950,   954,   961,   966,   971,   978,   980,
  269.    985,   986,   988,   990,   993,   995,   998,   999,  1002,  1005,
  270.   1008,  1012,  1016,  1020,  1024,  1027,  1030,  1032,  1034,  1037,
  271.   1040,  1042,  1045,  1048,  1052,  1054,  1056,  1059,  1062,  1064,
  272.   1066,  1069,  1072,  1074,  1077,  1080,  1084,  1086,  1089,  1091,
  273.   1093,  1095,  1097,  1102,  1107,  1109,  1111,  1113,  1115,  1117,
  274.   1121,  1123,  1127,  1128,  1133,  1134,  1142,  1147,  1148,  1156,
  275.   1161,  1162,  1170,  1175,  1176,  1183,  1185,  1189,  1191,  1193,
  276.   1198,  1203,  1212,  1214,  1218,  1220,  1223,  1227,  1232,  1234,
  277.   1236,  1240,  1245,  1252,  1256,  1262,  1263,  1271,  1276,  1277,
  278.   1284,  1288,  1291,  1296,  1298,  1299,  1301,  1302,  1304,  1306,
  279.   1309,  1312,  1315,  1318,  1321,  1324,  1327,  1331,  1335,  1338,
  280.   1339,  1343,  1344,  1348,  1351,  1353,  1355,  1356,  1358,  1361,
  281.   1363,  1367,  1369,  1371,  1374,  1377,  1380,  1384,  1386,  1388,
  282.   1390,  1393,  1396,  1398,  1399,  1401,  1406,  1410,  1412,  1415,
  283.   1418,  1422,  1428,  1434,  1438,  1442,  1446,  1450,  1454,  1460,
  284.   1466,  1470,  1474,  1478,  1482,  1484,  1487,  1490,  1494,  1498,
  285.   1499,  1501,  1505,  1510,  1517,  1522,  1527,  1531,  1536,  1543,
  286.   1548,  1553,  1557,  1559,  1563,  1565,  1569,  1572,  1575,  1576,
  287.   1578,  1581,  1583,  1586,  1587,  1590,  1591,  1594,  1600,  1606,
  288.   1610,  1616,  1621,  1625,  1629,  1635,  1637,  1639,  1645,  1649,
  289.   1653,  1655,  1661,  1667,  1671,  1677,  1682,  1686,  1690,  1692,
  290.   1694,  1698,  1702,  1708,  1714,  1718,  1724,  1728,  1732,  1736,
  291.   1741,  1745,  1747,  1749,  1752,  1755,  1758,  1762,  1766,  1774,
  292.   1782,  1788,  1796,  1800,  1808,  1816,  1822,  1830,  1834,  1836,
  293.   1839,  1842,  1845,  1847,  1850,  1854,  1858,  1861,  1863,  1867,
  294.   1871,  1874,  1880,  1884,  1889,  1893,  1898,  1901,  1905,  1908,
  295.   1913,  1919,  1924,  1930,  1936,  1942,  1944,  1946,  1949,  1952,
  296.   1955,  1956,  1957,  1959,  1961,  1964,  1968,  1970,  1973,  1977,
  297.   1983,  1989,  1990,  1991,  1998,  2000,  2003,  2005,  2007,  2009,
  298.   2012,  2013,  2018,  2020,  2021,  2022,  2029,  2030,  2031,  2039,
  299.   2040,  2041,  2042,  2053,  2054,  2055,  2056,  2067,  2068,  2076,
  300.   2077,  2083,  2084,  2092,  2093,  2098,  2101,  2104,  2107,  2111,
  301.   2118,  2127,  2138,  2151,  2156,  2160,  2163,  2166,  2168,  2171,
  302.   2175,  2182,  2187,  2194,  2199,  2203,  2204,  2212,  2215,  2216,
  303.   2222,  2226,  2228,  2231,  2235,  2239,  2242,  2245,  2247,  2248,
  304.   2253,  2256,  2260,  2264,  2265,  2266,  2271,  2272,  2273,  2278,
  305.   2279,  2284,  2285,  2287,  2288,  2289,  2298,  2302,  2307,  2312,
  306.   2316,  2321,  2328,  2335,  2336,  2338,  2339,  2341,  2343,  2344,
  307.   2346,  2348,  2352,  2357,  2359,  2363,  2364,  2366,  2370,  2373,
  308.   2375,  2377,  2380,  2383,  2385,  2389,  2393,  2399,  2403,  2409,
  309.   2413,  2417,  2419,  2421,  2424,  2426,  2427,  2429,  2430,  2433,
  310.   2438,  2440,  2442,  2444,  2447,  2450,  2453,  2455,  2457,  2459,
  311.   2463,  2465,  2469,  2472,  2475,  2478,  2481,  2484,  2487,  2490,
  312.   2493,  2496,  2499,  2502,  2505,  2508,  2511,  2514,  2517,  2520,
  313.   2523,  2526,  2529,  2532,  2535,  2538,  2542,  2545,  2548,  2551,
  314.   2554,  2558,  2561,  2564,  2568
  315. };
  316.  
  317. static const short yyrhs[] = {    -1,
  318.    111,     0,     0,   112,   116,     0,   111,   116,     0,     0,
  319.      0,    26,     0,    27,     0,   131,     0,   130,     0,   124,
  320.      0,   122,     0,   115,    83,   174,   104,   105,     0,   117,
  321.     50,   111,   106,     0,   117,    50,   106,     0,   117,   113,
  322.    131,   114,     0,   117,   113,   130,   114,     0,    97,     0,
  323.      0,    43,    65,   119,   120,    66,     0,   121,     0,   120,
  324.     51,   121,     0,   207,   140,     0,   207,   141,    55,   219,
  325.      0,   207,    49,   219,     0,   300,     0,    39,   123,   105,
  326.      0,     3,     0,   123,    51,     3,     0,     0,   118,   208,
  327.     50,   125,   105,     0,     0,   118,   209,    50,   126,   105,
  328.      0,     0,   118,   208,    55,   127,   105,     0,     0,   118,
  329.    209,    55,   128,   105,     0,   118,   208,   105,     0,   118,
  330.    209,   105,     0,   118,   238,   305,   189,   196,   129,     0,
  331.    118,   180,   179,   305,   189,   196,   129,     0,   118,   182,
  332.    179,   129,     0,   118,     1,   106,     0,   118,     1,   105,
  333.      0,    50,     0,    55,     0,   105,     0,    53,     0,    24,
  334.      0,   188,   105,     0,   182,   188,   105,     0,   182,   179,
  335.    105,     0,   180,   187,   105,     0,   180,   179,   105,     0,
  336.    182,   105,     0,   180,   105,     0,     1,   105,     0,     1,
  337.    106,     0,   105,     0,   132,   136,   251,     0,   132,   135,
  338.    136,   251,     0,   132,   175,   251,     0,   132,   135,   105,
  339.    175,   251,     0,   132,   135,   175,   251,     0,   180,   179,
  340.      1,     0,   182,   238,     1,     0,   238,     1,     0,   180,
  341.    179,   305,     0,   182,   238,   305,     0,   238,   305,     0,
  342.      4,    83,   298,   104,   233,   305,     0,   241,    83,   298,
  343.    104,   233,   305,     0,     4,    42,   233,   305,     0,   241,
  344.     42,   233,   305,     0,    96,     0,   180,    83,   298,   104,
  345.    233,   305,     0,   180,    42,   233,   305,     0,   180,   179,
  346.    305,     0,   182,    83,   298,   104,   233,   305,     0,   182,
  347.     42,   233,   305,     0,   182,   179,   305,     0,   238,   305,
  348.      0,    24,     3,     0,   134,     0,   134,    53,   200,     0,
  349.    134,    83,   163,   104,     0,   134,    42,     0,    55,   137,
  350.    138,     0,     0,     0,   139,     0,   138,    51,   139,     0,
  351.    138,     1,     0,    83,   163,   104,     0,    42,     0,   140,
  352.     83,   163,   104,     0,   140,    42,     0,   144,    83,   163,
  353.    104,     0,   144,    42,     0,   241,    83,   163,   104,     0,
  354.    241,    42,     0,   239,   140,    83,   163,   104,     0,   239,
  355.    140,    42,     0,     3,     0,     4,     0,    95,     0,   101,
  356.      0,   100,     0,   102,     0,     3,     0,     4,     0,    95,
  357.      0,   107,   140,     0,   310,     0,   144,   145,   151,     0,
  358.     95,    65,   147,    66,     0,     4,    65,   147,    66,     0,
  359.     50,     0,    55,     0,     0,     0,   148,     0,   147,    51,
  360.    148,     0,   230,     0,   167,     0,     0,    99,   215,   150,
  361.    221,   222,   106,     0,     0,   149,     0,     0,   149,   152,
  362.      0,    70,     0,    69,     0,    75,     0,    76,     0,   108,
  363.      0,   163,     0,   167,     0,    42,     0,    83,   154,   104,
  364.      0,    42,     0,    83,   158,   104,     0,     0,   158,     0,
  365.      1,     0,     0,   183,   179,   305,   189,   196,    53,   159,
  366.    200,     0,   154,     0,     0,    50,   160,   106,     0,    50,
  367.    160,   248,   245,   106,     0,    50,   160,   248,     1,   106,
  368.      0,   160,   258,     0,    50,   106,     0,    50,   248,   245,
  369.    106,     0,    50,   248,     1,   106,     0,   258,     0,   167,
  370.      0,   163,    51,   167,     0,   163,    51,     1,     0,   168,
  371.      0,     0,    33,   165,   166,     0,    71,   166,     0,    61,
  372.    166,     0,   107,   166,     0,   153,   166,     0,    58,   140,
  373.      0,    12,   164,     0,    12,    83,   230,   104,     0,    29,
  374.    164,     0,    29,    83,   230,   104,     0,   172,   171,   230,
  375.      0,   172,   171,    83,   163,   104,   230,     0,   172,   171,
  376.    185,    83,   163,   104,     0,   172,   171,   185,    83,   185,
  377.    104,     0,   172,   171,    83,   163,   104,   185,    83,   163,
  378.    104,     0,   172,   171,   185,    42,     0,   172,   171,    83,
  379.    163,   104,   185,    42,     0,   172,   171,   230,    53,   200,
  380.      0,   172,   171,    83,   163,   104,   230,    53,   200,     0,
  381.    172,   171,    83,   183,   231,   104,    84,   234,   109,     0,
  382.    172,   171,    83,   232,   231,   104,    84,   234,   109,     0,
  383.    172,   171,    83,   183,   231,   104,     0,   172,   171,    83,
  384.    163,   104,    83,   183,   231,   104,     0,   172,   171,    83,
  385.    232,   231,   104,     0,   172,   171,    83,   163,   104,    83,
  386.    232,   231,   104,     0,   172,   171,    49,     0,   172,   171,
  387.     83,   163,   104,    49,     0,   173,   166,     0,   173,    84,
  388.    109,   166,     0,   173,    84,   154,   109,   166,     0,   164,
  389.      0,    83,   230,   104,   167,     0,    83,   230,   104,    50,
  390.    201,   205,   106,     0,    30,    83,   154,   104,     0,    31,
  391.     83,   154,   104,     0,    31,    83,     4,   104,     0,   166,
  392.      0,   167,    69,   167,     0,   167,    70,   167,     0,   167,
  393.     71,   167,     0,   167,    72,   167,     0,   167,    73,   167,
  394.      0,   167,    67,   167,     0,   167,    68,   167,     0,   167,
  395.     64,   167,     0,   167,    65,   167,     0,   167,    66,   167,
  396.      0,   167,    63,   167,     0,   167,    62,   167,     0,   167,
  397.     61,   167,     0,   167,    59,   167,     0,   167,    60,   167,
  398.      0,   167,    58,   167,     0,   167,    57,   167,     0,   167,
  399.     54,   293,    55,   167,     0,   167,    53,   167,     0,   167,
  400.     52,   167,     0,   168,    82,   167,     0,   177,   167,     0,
  401.      3,     0,   310,     0,     9,     0,   174,     0,    83,   154,
  402.    104,     0,    83,     1,   104,     0,     0,    83,   169,   252,
  403.    104,     0,     0,   168,    83,   163,   104,   170,   152,     0,
  404.    168,    42,     0,   168,    84,   154,   109,     0,   176,   142,
  405.      0,   176,   239,   142,     0,   168,    75,     0,   168,    76,
  406.      0,    40,     0,     8,    83,   163,   104,     0,   185,    83,
  407.    163,   104,     0,   185,    42,     0,    45,    65,   230,    66,
  408.     83,   154,   104,     0,    44,    83,   154,   104,     0,    44,
  409.     83,   230,   104,     0,    46,   185,    83,   163,   104,     0,
  410.     46,   185,    42,     0,    46,     3,     0,    46,   310,     0,
  411.    239,   142,     0,   239,   142,    83,   163,   104,     0,   239,
  412.    142,    42,     0,   176,   142,    83,   163,   104,     0,   176,
  413.    142,    42,     0,   176,   239,   142,    83,   163,   104,     0,
  414.    176,   239,   142,    42,     0,   176,   107,     7,    42,     0,
  415.    176,     7,    46,   107,     7,    42,     0,    38,     0,    38,
  416.     50,   163,   106,     0,     0,    46,     0,    37,     0,    46,
  417.    173,     0,    10,     0,   174,    10,     0,     0,   168,    81,
  418.      0,   168,    79,     0,   168,    80,     0,   180,   187,   105,
  419.      0,   180,   179,   105,     0,   182,   188,   105,     0,   182,
  420.    179,   105,     0,   180,   105,     0,   182,   105,     0,   236,
  421.      0,   238,     0,    47,   236,     0,    47,   238,     0,   185,
  422.      0,   182,   185,     0,   185,   181,     0,   182,   185,   181,
  423.      0,   186,     0,     6,     0,   181,   186,     0,   181,     6,
  424.      0,     8,     0,     6,     0,   182,     8,     0,   182,     6,
  425.      0,   185,     0,   232,   185,     0,   185,   184,     0,   232,
  426.    185,   184,     0,   186,     0,   184,   186,     0,   202,     0,
  427.      7,     0,     4,     0,   241,     0,    28,    83,   154,   104,
  428.      0,    28,    83,   230,   104,     0,   143,     0,     7,     0,
  429.      8,     0,   202,     0,   190,     0,   187,    51,   192,     0,
  430.    194,     0,   188,    51,   192,     0,     0,   115,    83,   174,
  431.    104,     0,     0,   179,   305,   189,   196,    53,   191,   200,
  432.      0,   179,   305,   189,   196,     0,     0,   179,   305,   189,
  433.    196,    53,   193,   200,     0,   179,   305,   189,   196,     0,
  434.      0,   238,   305,   189,   196,    53,   195,   200,     0,   238,
  435.    305,   189,   196,     0,     0,    32,    83,    83,   197,   104,
  436.    104,     0,   198,     0,   197,    51,   198,     0,     3,     0,
  437.      8,     0,     3,    83,     3,   104,     0,     3,    83,     9,
  438.    104,     0,     3,    83,     3,    51,     9,    51,     9,   104,
  439.      0,   140,     0,   199,    51,   140,     0,   167,     0,    50,
  440.    106,     0,    50,   201,   106,     0,    50,   201,    51,   106,
  441.      0,     1,     0,   200,     0,   201,    51,   200,     0,    84,
  442.    167,   109,   200,     0,   201,    51,    20,   167,    55,   200,
  443.      0,   140,    55,   200,     0,   201,    51,   140,    55,   200,
  444.      0,     0,    13,   140,    50,   203,   228,   206,   106,     0,
  445.     13,   140,    50,   106,     0,     0,    13,    50,   204,   228,
  446.    206,   106,     0,    13,    50,   106,     0,    13,   140,     0,
  447.    214,   221,   222,   106,     0,   214,     0,     0,    51,     0,
  448.      0,    51,     0,    35,     0,   207,     6,     0,   207,     7,
  449.      0,   207,     8,     0,   207,    35,     0,   207,   140,     0,
  450.    207,   144,     0,   207,    49,     0,   207,   144,    50,     0,
  451.    207,   144,    55,     0,   207,   141,     0,     0,   208,   211,
  452.    215,     0,     0,   209,   212,   215,     0,   207,    50,     0,
  453.    213,     0,   210,     0,     0,    55,     0,    55,   216,     0,
  454.    217,     0,   216,    51,   217,     0,   219,     0,   218,     0,
  455.    220,   219,     0,   220,   218,     0,   219,     5,     0,   144,
  456.    146,   151,     0,   140,     0,    36,     0,     6,     0,   220,
  457.     36,     0,   220,     6,     0,    50,     0,     0,   223,     0,
  458.    222,    36,    55,   223,     0,   222,    36,    55,     0,   224,
  459.      0,   223,   224,     0,   223,   105,     0,   180,   225,   105,
  460.      0,   180,    83,   298,   104,   105,     0,   180,    83,   298,
  461.    104,   106,     0,   180,    42,   105,     0,   180,    42,   106,
  462.      0,   182,   225,   105,     0,   182,   179,   105,     0,   182,
  463.    225,   106,     0,   182,    83,   298,   104,   105,     0,   182,
  464.     83,   298,   104,   106,     0,   182,    42,   105,     0,   182,
  465.     42,   106,     0,    55,   167,   105,     0,    55,   167,   106,
  466.      0,     1,     0,   133,    55,     0,   133,    50,     0,   238,
  467.    305,   105,     0,   238,   305,   106,     0,     0,   226,     0,
  468.    225,    51,   227,     0,   179,   305,   189,   196,     0,   179,
  469.    305,   189,   196,    53,   200,     0,     3,    55,   167,   196,
  470.      0,     4,    55,   167,   196,     0,    55,   167,   196,     0,
  471.    179,   305,   189,   196,     0,   179,   305,   189,   196,    53,
  472.    200,     0,     3,    55,   167,   196,     0,     4,    55,   167,
  473.    196,     0,    55,   167,   196,     0,   229,     0,   228,    51,
  474.    229,     0,   140,     0,   140,    53,   167,     0,   183,   231,
  475.      0,   232,   231,     0,     0,   242,     0,    47,   242,     0,
  476.      8,     0,   232,     8,     0,     0,   233,     8,     0,     0,
  477.    235,   154,     0,   236,    83,   163,   104,   233,     0,   236,
  478.     83,   298,   104,   233,     0,   236,    42,   233,     0,   236,
  479.     83,     1,   104,   233,     0,   236,    84,   234,   109,     0,
  480.    236,    84,   109,     0,    83,   237,   104,     0,    83,    71,
  481.    233,   236,   104,     0,    78,     0,   244,     0,    83,    61,
  482.    233,   236,   104,     0,    71,   233,   236,     0,    61,   233,
  483.    236,     0,     4,     0,   237,    83,   163,   104,   233,     0,
  484.    237,    83,   298,   104,   233,     0,   237,    42,   233,     0,
  485.    237,    83,     1,   104,   233,     0,   237,    84,   234,   109,
  486.      0,   237,    84,   109,     0,    83,   237,   104,     0,    78,
  487.      0,   244,     0,    71,   233,   236,     0,    61,   233,   236,
  488.      0,   238,    83,   163,   104,   233,     0,   238,    83,   298,
  489.    104,   233,     0,   238,    42,   233,     0,   238,    83,     1,
  490.    104,   233,     0,    83,   238,   104,     0,    71,   233,   238,
  491.      0,    61,   233,   238,     0,   238,    84,   234,   109,     0,
  492.    238,    84,   109,     0,     3,     0,   310,     0,   107,     4,
  493.      0,   107,     3,     0,   107,    95,     0,   239,   302,   238,
  494.      0,   239,   302,     4,     0,   239,   302,     4,    83,   163,
  495.    104,   233,     0,   239,   302,     4,    83,   298,   104,   233,
  496.      0,   239,   302,     4,    42,   233,     0,   239,   302,     4,
  497.     83,     1,   104,   233,     0,   239,   302,    95,     0,   239,
  498.    302,    95,    83,   163,   104,   233,     0,   239,   302,    95,
  499.     83,   298,   104,   233,     0,   239,   302,    95,    42,   233,
  500.      0,   239,   302,    95,    83,     1,   104,   233,     0,    46,
  501.    302,   238,     0,   240,     0,     3,    46,     0,   143,    46,
  502.      0,     4,    46,     0,     5,     0,   143,     5,     0,    83,
  503.    242,   104,     0,    71,   233,   242,     0,    71,   233,     0,
  504.     78,     0,    83,   243,   104,     0,    61,   233,   242,     0,
  505.     61,   233,     0,   242,    83,   298,   104,   233,     0,   242,
  506.     42,   233,     0,   242,    84,   234,   109,     0,   242,    84,
  507.    109,     0,    83,   298,   104,   233,     0,    42,   233,     0,
  508.     84,   234,   109,     0,    84,   109,     0,   239,   302,    71,
  509.    233,     0,   239,   302,    71,   233,   242,     0,   239,   302,
  510.     61,   233,     0,   239,   302,    61,   233,   242,     0,   239,
  511.    302,    71,   233,   236,     0,   239,   302,    61,   233,   236,
  512.      0,   257,     0,   246,     0,   245,   257,     0,   245,   246,
  513.      0,     1,   105,     0,     0,     0,   249,     0,   250,     0,
  514.    249,   250,     0,    34,   199,   105,     0,   252,     0,     1,
  515.    252,     0,    50,   247,   106,     0,    50,   247,   248,   245,
  516.    106,     0,    50,   247,   248,     1,   106,     0,     0,     0,
  517.     14,   254,   247,   156,   255,   161,     0,   252,     0,   247,
  518.    258,     0,   252,     0,   258,     0,   178,     0,   154,   105,
  519.      0,     0,   253,    15,   259,   161,     0,   253,     0,     0,
  520.      0,    16,   260,   247,   156,   261,   162,     0,     0,     0,
  521.     17,   262,   256,    16,   263,   155,   105,     0,     0,     0,
  522.      0,   290,   264,   247,   157,   105,   265,   293,   104,   266,
  523.    162,     0,     0,     0,     0,   291,   267,   247,   157,   105,
  524.    268,   293,   104,   269,   162,     0,     0,    19,   247,    83,
  525.    158,   104,   270,   161,     0,     0,    20,   167,    55,   271,
  526.    257,     0,     0,    20,   167,    56,   167,    55,   272,   257,
  527.      0,     0,    21,    55,   273,   257,     0,    22,   105,     0,
  528.     23,   105,     0,    24,   105,     0,    24,   154,   105,     0,
  529.    115,   292,    83,   174,   104,   105,     0,   115,   292,    83,
  530.    174,    55,   294,   104,   105,     0,   115,   292,    83,   174,
  531.     55,   294,    55,   294,   104,   105,     0,   115,   292,    83,
  532.    174,    55,   294,    55,   294,    55,   297,   104,   105,     0,
  533.     25,    71,   154,   105,     0,    25,   140,   105,     0,   277,
  534.    257,     0,   277,   106,     0,   105,     0,    93,   105,     0,
  535.     93,   154,   105,     0,    91,   306,    83,   163,   104,   105,
  536.      0,    91,   306,    42,   105,     0,    85,   306,    83,   163,
  537.    104,   105,     0,    85,   306,    42,   105,     0,    85,   140,
  538.    105,     0,     0,   276,    89,   140,    50,   274,   284,   106,
  539.      0,   276,     1,     0,     0,   280,   281,   281,   275,   288,
  540.      0,   276,    87,   308,     0,   276,     0,   278,   106,     0,
  541.    278,   245,   106,     0,   278,     1,   106,     0,     3,    55,
  542.      0,    95,    55,     0,    49,     0,     0,    88,    50,   279,
  543.    247,     0,   282,   106,     0,   282,   245,   106,     0,   282,
  544.      1,   106,     0,     0,     0,    92,    50,   283,   247,     0,
  545.      0,     0,   284,   306,   285,   252,     0,     0,   284,    21,
  546.    286,   252,     0,     0,   140,     0,     0,     0,   288,    90,
  547.     83,   230,   287,   104,   289,   252,     0,    18,    83,   105,
  548.      0,    18,    83,   154,   105,     0,    18,    83,    50,   106,
  549.      0,    18,    83,   178,     0,    18,    83,     1,   105,     0,
  550.     18,    83,    50,   247,   245,   106,     0,    18,    83,    50,
  551.    247,     1,   106,     0,     0,     8,     0,     0,   154,     0,
  552.      1,     0,     0,   295,     0,   296,     0,   295,    51,   296,
  553.      0,    10,    83,   154,   104,     0,    10,     0,   297,    51,
  554.     10,     0,     0,   299,     0,   299,    51,    11,     0,   299,
  555.     11,     0,    11,     0,    94,     0,   299,    94,     0,   299,
  556.     55,     0,   300,     0,   300,    53,   200,     0,   299,    51,
  557.    300,     0,   299,    51,   300,    53,   200,     0,   299,    51,
  558.    304,     0,   299,    51,   304,    53,   200,     0,   180,   303,
  559.    301,     0,   182,   303,   301,     0,   231,     0,   238,     0,
  560.     47,   238,     0,   233,     0,     0,   301,     0,     0,    86,
  561.    308,     0,    93,    83,   309,   104,     0,    98,     0,     3,
  562.      0,     4,     0,    46,     3,     0,    46,     4,     0,   239,
  563.      3,     0,   241,     0,   230,     0,   306,     0,   308,    51,
  564.    306,     0,   307,     0,   309,    51,   307,     0,    41,    71,
  565.      0,    41,    72,     0,    41,    73,     0,    41,    69,     0,
  566.     41,    70,     0,    41,    61,     0,    41,    59,     0,    41,
  567.     60,     0,    41,   107,     0,    41,    51,     0,    41,    64,
  568.      0,    41,    65,     0,    41,    66,     0,    41,    63,     0,
  569.     41,    52,     0,    41,    53,     0,    41,    67,     0,    41,
  570.     68,     0,    41,    75,     0,    41,    76,     0,    41,    58,
  571.      0,    41,    57,     0,    41,   108,     0,    41,    54,    55,
  572.      0,    41,    62,     0,    41,    79,     0,    41,    80,     0,
  573.     41,    42,     0,    41,    84,   109,     0,    41,    38,     0,
  574.     41,    37,     0,    41,   183,   231,     0,    41,     1,     0
  575. };
  576.  
  577. #endif
  578.  
  579. #if YYDEBUG != 0
  580. static const short yyrline[] = { 0,
  581.    285,   286,   300,   302,   303,   307,   312,   316,   319,   322,
  582.    325,   327,   329,   330,   333,   335,   337,   340,   345,   350,
  583.    353,   357,   360,   364,   377,   384,   391,   394,   399,   401,
  584.    405,   411,   411,   414,   414,   417,   417,   430,   430,   435,
  585.    440,   455,   478,   487,   488,   491,   492,   493,   494,   495,
  586.    498,   504,   507,   512,   518,   525,   527,   545,   546,   547,
  587.    550,   564,   577,   580,   583,   586,   588,   590,   594,   600,
  588.    605,   610,   615,   620,   625,   630,   636,   646,   655,   662,
  589.    671,   680,   687,   696,   704,   706,   708,   710,   714,   727,
  590.    750,   753,   755,   756,   759,   766,   773,   777,   779,   781,
  591.    783,   785,   787,   791,   797,   799,   800,   803,   805,   806,
  592.    809,   811,   812,   816,   817,   820,   849,   852,   856,   860,
  593.    861,   865,   870,   873,   877,   880,   883,   916,   932,   935,
  594.    939,   942,   946,   948,   950,   952,   954,   958,   961,   964,
  595.    969,   973,   978,   982,   985,   986,   990,  1009,  1016,  1021,
  596.   1033,  1040,  1046,  1052,  1059,  1062,  1064,  1066,  1069,  1072,
  597.   1074,  1078,  1085,  1088,  1091,  1093,  1095,  1097,  1104,  1115,
  598.   1135,  1137,  1139,  1142,  1144,  1146,  1148,  1151,  1153,  1155,
  599.   1157,  1159,  1167,  1177,  1180,  1182,  1184,  1186,  1189,  1191,
  600.   1194,  1196,  1200,  1206,  1208,  1211,  1226,  1228,  1230,  1241,
  601.   1243,  1245,  1247,  1249,  1251,  1253,  1255,  1257,  1259,  1261,
  602.   1263,  1265,  1267,  1269,  1271,  1273,  1275,  1277,  1279,  1281,
  603.   1288,  1291,  1308,  1311,  1328,  1329,  1331,  1333,  1335,  1343,
  604.   1358,  1363,  1370,  1377,  1380,  1382,  1384,  1393,  1398,  1421,
  605.   1465,  1467,  1470,  1473,  1475,  1478,  1480,  1482,  1521,  1528,
  606.   1530,  1532,  1534,  1549,  1564,  1566,  1569,  1576,  1625,  1627,
  607.   1634,  1637,  1641,  1643,  1651,  1653,  1657,  1670,  1671,  1677,
  608.   1680,  1687,  1695,  1698,  1705,  1710,  1717,  1719,  1720,  1722,
  609.   1730,  1733,  1735,  1737,  1741,  1745,  1750,  1752,  1763,  1767,
  610.   1769,  1772,  1787,  1790,  1792,  1794,  1798,  1801,  1809,  1810,
  611.   1811,  1812,  1813,  1817,  1821,  1826,  1827,  1828,  1831,  1833,
  612.   1836,  1838,  1841,  1844,  1848,  1856,  1858,  1867,  1873,  1874,
  613.   1880,  1888,  1890,  1901,  1904,  1909,  1911,  1916,  1922,  1923,
  614.   1933,  1944,  1959,  1962,  1966,  1968,  1973,  1976,  1979,  1985,
  615.   1988,  1991,  1993,  1995,  1997,  2001,  2005,  2009,  2012,  2015,
  616.   2019,  2022,  2026,  2081,  2096,  2098,  2101,  2103,  2107,  2108,
  617.   2110,  2112,  2114,  2118,  2121,  2123,  2125,  2131,  2135,  2140,
  618.   2145,  2152,  2157,  2166,  2171,  2171,  2173,  2176,  2178,  2182,
  619.   2184,  2188,  2193,  2197,  2201,  2207,  2216,  2230,  2233,  2235,
  620.   2239,  2265,  2274,  2300,  2303,  2305,  2307,  2312,  2315,  2328,
  621.   2331,  2337,  2339,  2343,  2345,  2349,  2352,  2355,  2359,  2361,
  622.   2365,  2367,  2371,  2373,  2377,  2382,  2384,  2386,  2388,  2394,
  623.   2397,  2398,  2409,  2414,  2418,  2422,  2426,  2432,  2436,  2439,
  624.   2442,  2445,  2454,  2456,  2460,  2463,  2468,  2471,  2476,  2479,
  625.   2480,  2484,  2487,  2491,  2494,  2502,  2504,  2508,  2511,  2513,
  626.   2515,  2517,  2519,  2521,  2523,  2525,  2527,  2528,  2530,  2532,
  627.   2534,  2537,  2540,  2542,  2544,  2546,  2548,  2550,  2552,  2554,
  628.   2555,  2557,  2564,  2567,  2569,  2571,  2573,  2575,  2577,  2579,
  629.   2581,  2583,  2587,  2590,  2596,  2598,  2600,  2609,  2611,  2613,
  630.   2615,  2617,  2620,  2622,  2624,  2626,  2628,  2630,  2634,  2647,
  631.   2649,  2666,  2669,  2670,  2691,  2696,  2698,  2700,  2702,  2704,
  632.   2706,  2708,  2710,  2712,  2714,  2716,  2718,  2720,  2722,  2726,
  633.   2734,  2741,  2748,  2757,  2765,  2778,  2780,  2781,  2782,  2785,
  634.   2792,  2802,  2804,  2809,  2811,  2814,  2828,  2831,  2834,  2839,
  635.   2844,  2851,  2854,  2858,  2860,  2863,  2870,  2873,  2876,  2879,
  636.   2892,  2895,  2901,  2908,  2913,  2916,  2922,  2926,  2929,  2935,
  637.   2940,  2943,  2948,  2958,  2962,  2965,  2971,  2982,  2989,  2996,
  638.   3047,  3047,  3127,  3127,  3143,  3143,  3147,  3151,  3154,  3159,
  639.   3166,  3175,  3184,  3193,  3196,  3202,  3204,  3208,  3212,  3213,
  640.   3214,  3217,  3220,  3223,  3226,  3229,  3241,  3270,  3280,  3293,
  641.   3321,  3352,  3364,  3372,  3377,  3384,  3392,  3394,  3401,  3403,
  642.   3403,  3411,  3416,  3423,  3424,  3426,  3426,  3429,  3450,  3466,
  643.   3485,  3503,  3506,  3508,  3511,  3528,  3546,  3549,  3551,  3555,
  644.   3558,  3560,  3562,  3568,  3571,  3575,  3578,  3579,  3585,  3587,
  645.   3590,  3592,  3596,  3601,  3604,  3613,  3620,  3625,  3630,  3634,
  646.   3641,  3645,  3649,  3663,  3666,  3668,  3670,  3672,  3674,  3682,
  647.   3698,  3703,  3704,  3705,  3709,  3713,  3731,  3739,  3742,  3744,
  648.   3748,  3751,  3753,  3755,  3757,  3759,  3761,  3764,  3769,  3771,
  649.   3778,  3780,  3787,  3790,  3792,  3794,  3796,  3798,  3800,  3802,
  650.   3804,  3806,  3808,  3810,  3812,  3814,  3816,  3818,  3827,  3829,
  651.   3831,  3833,  3835,  3837,  3839,  3841,  3843,  3845,  3857,  3869,
  652.   3881,  3893,  3921,  3952,  3954
  653. };
  654.  
  655. static const char * const yytname[] = {   "$","error","$illegal.","IDENTIFIER",
  656. "TYPENAME","SCOPED_TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING",
  657. "ELLIPSIS","SIZEOF","ENUM","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
  658. "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","GCC_ASM_KEYWORD","TYPEOF",
  659. "ALIGNOF","HEADOF","CLASSOF","ATTRIBUTE","EXTENSION","LABEL","AGGR","VISSPEC",
  660. "DELETE","NEW","OVERLOAD","THIS","OPERATOR","LEFT_RIGHT","TEMPLATE","TYPEID",
  661. "DYNAMIC_CAST","SCOPE","START_DECLARATOR","EMPTY","TYPENAME_COLON","'{'","','",
  662. "ASSIGN","'='","'?'","':'","RANGE","OROR","ANDAND","'|'","'^'","'&'","MIN_MAX",
  663. "EQCOMPARE","ARITHCOMPARE","'<'","'>'","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'",
  664. "'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","PAREN_STAR_PAREN","POINTSAT",
  665. "POINTSAT_STAR","'.'","DOT_STAR","'('","'['","RAISE","RAISES","RERAISE","TRY",
  666. "EXCEPT","CATCH","THROW","ANSI_TRY","ANSI_THROW","TYPENAME_ELLIPSIS","PTYPENAME",
  667. "PRE_PARSED_FUNCTION_DECL","EXTERN_LANG_STRING","ALL","PRE_PARSED_CLASS_DECL",
  668. "TYPENAME_DEFN","IDENTIFIER_DEFN","PTYPENAME_DEFN","END_OF_SAVED_INPUT","')'",
  669. "';'","'}'","'~'","'!'","']'","program","extdefs","@1",".hush_warning",".warning_ok",
  670. "asm_keyword","extdef","extern_lang_string","template_header","@2","template_parm_list",
  671. "template_parm","overloaddef","ov_identifiers","template_def","@3","@4","@5",
  672. "@6","fn_tmpl_end","datadef","fndef","fn.def1","fn.def2","return_id","return_init",
  673. "base_init",".set_base_init","member_init_list","member_init","identifier","identifier_defn",
  674. "identifier_or_opname","template_type","template_type_name","tmpl.1","tmpl.2",
  675. "template_arg_list","template_arg","template_instantiate_once","@7","template_instantiation",
  676. "template_instantiate_some","unop","expr","paren_expr_or_null","paren_cond_or_null",
  677. "xcond","condition","@8",".kindof_pushlevel","partially_scoped_stmt","already_scoped_stmt",
  678. "nonnull_exprlist","unary_expr","@9","cast_expr","expr_no_commas","primary",
  679. "@10","@11","new",".scope","delete","string","nodecls","object","object_star",
  680. "decl","declarator","typed_declspecs","reserved_declspecs","declmods","typed_typespecs",
  681. "reserved_typespecquals","typespec","typespecqual_reserved","initdecls","notype_initdecls",
  682. "maybeasm","initdcl0","@12","initdcl","@13","notype_initdcl0","@14","maybe_attribute",
  683. "attribute_list","attrib","identifiers_or_typenames","init","initlist","structsp",
  684. "@15","@16","maybecomma","maybecomma_warn","aggr","named_class_head_sans_basetype",
  685. "named_class_head_sans_basetype_defn","named_class_head","@17","@18","unnamed_class_head",
  686. "class_head","maybe_base_class_list","base_class_list","base_class","scoped_base_class",
  687. "base_class.1","base_class_visibility_list","left_curly","opt.component_decl_list",
  688. "component_decl_list","component_decl","components","component_declarator0",
  689. "component_declarator","enumlist","enumerator","typename","absdcl","nonempty_type_quals",
  690. "type_quals","nonmomentary_expr","@19","after_type_declarator","after_type_declarator_no_typename",
  691. "notype_declarator","id_scope","typename_scope","scoped_typename","absdcl1",
  692. "abs_member_declarator","after_type_member_declarator","stmts","errstmt",".pushlevel",
  693. "maybe_label_decls","label_decls","label_decl","compstmt_or_error","compstmt",
  694. "simple_if","@20","@21","implicitly_scoped_stmt","stmt","simple_stmt","@22",
  695. "@23","@24","@25","@26","@27","@28","@29","@30","@31","@32","@33","@34","@35",
  696. "@36","@37","@38","try","label_colon","try_head","@39","ansi_try","ansi_dummy",
  697. "ansi_try_head","@40","except_stmts","@41","@42","optional_identifier","ansi_except_stmts",
  698. "@43","forhead.1","forhead.2","maybe_type_qual","xexpr","asm_operands","nonnull_asm_operands",
  699. "asm_operand","asm_clobbers","parmlist","parms","parm","abs_or_notype_decl",
  700. "see_typename","dont_see_typename","bad_parm","maybe_raises","raise_identifier",
  701. "ansi_raise_identifier","raise_identifiers","ansi_raise_identifiers","operator_name",
  702. ""
  703. };
  704. #endif
  705.  
  706. static const short yyr1[] = {     0,
  707.    110,   110,   112,   111,   111,   113,   114,   115,   115,   116,
  708.    116,   116,   116,   116,   116,   116,   116,   116,   117,   119,
  709.    118,   120,   120,   121,   121,   121,   121,   122,   123,   123,
  710.    125,   124,   126,   124,   127,   124,   128,   124,   124,   124,
  711.    124,   124,   124,   124,   124,   129,   129,   129,   129,   129,
  712.    130,   130,   130,   130,   130,   130,   130,   130,   130,   130,
  713.    131,   131,   131,   131,   131,   131,   131,   131,   132,   132,
  714.    132,   132,   132,   132,   132,   132,   133,   133,   133,   133,
  715.    133,   133,   133,   134,   135,   135,   135,   135,   136,   137,
  716.    138,   138,   138,   138,   139,   139,   139,   139,   139,   139,
  717.    139,   139,   139,   139,   140,   140,   140,   141,   141,   141,
  718.    142,   142,   142,   142,   142,   143,   144,   144,   145,   145,
  719.    145,   146,   147,   147,   148,   148,   150,   149,   151,   151,
  720.    152,   152,   153,   153,   153,   153,   153,   154,   154,   155,
  721.    155,   156,   156,   157,   157,   157,   159,   158,   158,   160,
  722.    161,   161,   161,   161,   162,   162,   162,   162,   163,   163,
  723.    163,   164,   165,   164,   164,   164,   164,   164,   164,   164,
  724.    164,   164,   164,   164,   164,   164,   164,   164,   164,   164,
  725.    164,   164,   164,   164,   164,   164,   164,   164,   164,   164,
  726.    164,   164,   164,   166,   166,   166,   166,   166,   166,   167,
  727.    167,   167,   167,   167,   167,   167,   167,   167,   167,   167,
  728.    167,   167,   167,   167,   167,   167,   167,   167,   167,   167,
  729.    167,   167,   168,   168,   168,   168,   168,   168,   169,   168,
  730.    170,   168,   168,   168,   168,   168,   168,   168,   168,   168,
  731.    168,   168,   168,   168,   168,   168,   168,   168,   168,   168,
  732.    168,   168,   168,   168,   168,   168,   168,   168,   171,   171,
  733.    172,   172,   173,   173,   174,   174,   175,   176,   176,   177,
  734.    178,   178,   178,   178,   178,   178,   179,   179,   179,   179,
  735.    180,   180,   180,   180,   181,   181,   181,   181,   182,   182,
  736.    182,   182,   183,   183,   183,   183,   184,   184,   185,   185,
  737.    185,   185,   185,   185,   185,   186,   186,   186,   187,   187,
  738.    188,   188,   189,   189,   191,   190,   190,   193,   192,   192,
  739.    195,   194,   194,   196,   196,   197,   197,   198,   198,   198,
  740.    198,   198,   199,   199,   200,   200,   200,   200,   200,   201,
  741.    201,   201,   201,   201,   201,   203,   202,   202,   204,   202,
  742.    202,   202,   202,   202,   205,   205,   206,   206,   207,   207,
  743.    207,   207,   207,   208,   208,   208,   208,   208,   209,   211,
  744.    210,   212,   210,   213,   214,   214,   215,   215,   215,   216,
  745.    216,   217,   217,   217,   217,   218,   219,   219,   220,   220,
  746.    220,   220,   221,   222,   222,   222,   222,   223,   223,   223,
  747.    224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
  748.    224,   224,   224,   224,   224,   224,   224,   224,   224,   225,
  749.    225,   225,   226,   226,   226,   226,   226,   227,   227,   227,
  750.    227,   227,   228,   228,   229,   229,   230,   230,   231,   231,
  751.    231,   232,   232,   233,   233,   235,   234,   236,   236,   236,
  752.    236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
  753.    236,   237,   237,   237,   237,   237,   237,   237,   237,   237,
  754.    237,   237,   238,   238,   238,   238,   238,   238,   238,   238,
  755.    238,   238,   238,   238,   238,   238,   238,   238,   238,   238,
  756.    238,   238,   238,   238,   238,   238,   238,   238,   239,   239,
  757.    239,   240,   241,   241,   242,   242,   242,   242,   242,   242,
  758.    242,   242,   242,   242,   242,   242,   242,   242,   242,   243,
  759.    243,   243,   243,   244,   244,   245,   245,   245,   245,   246,
  760.    247,   248,   248,   249,   249,   250,   251,   251,   252,   252,
  761.    252,   254,   255,   253,   256,   256,   257,   257,   258,   258,
  762.    259,   258,   258,   260,   261,   258,   262,   263,   258,   264,
  763.    265,   266,   258,   267,   268,   269,   258,   270,   258,   271,
  764.    258,   272,   258,   273,   258,   258,   258,   258,   258,   258,
  765.    258,   258,   258,   258,   258,   258,   258,   258,   258,   258,
  766.    258,   258,   258,   258,   258,   274,   258,   258,   275,   258,
  767.    258,   258,   276,   276,   276,   277,   277,   277,   279,   278,
  768.    280,   280,   280,   281,   283,   282,   284,   285,   284,   286,
  769.    284,   287,   287,   288,   289,   288,   290,   290,   290,   291,
  770.    291,   291,   291,   292,   292,   293,   293,   293,   294,   294,
  771.    295,   295,   296,   297,   297,   298,   298,   298,   298,   298,
  772.    298,   298,   298,   299,   299,   299,   299,   299,   299,   300,
  773.    300,   301,   301,   301,   302,   303,   304,   305,   305,   305,
  774.    306,   306,   306,   306,   306,   306,   306,   307,   308,   308,
  775.    309,   309,   310,   310,   310,   310,   310,   310,   310,   310,
  776.    310,   310,   310,   310,   310,   310,   310,   310,   310,   310,
  777.    310,   310,   310,   310,   310,   310,   310,   310,   310,   310,
  778.    310,   310,   310,   310,   310
  779. };
  780.  
  781. static const short yyr2[] = {     0,
  782.      0,     1,     0,     2,     2,     0,     0,     1,     1,     1,
  783.      1,     1,     1,     5,     4,     3,     4,     4,     1,     0,
  784.      5,     1,     3,     2,     4,     3,     1,     3,     1,     3,
  785.      0,     5,     0,     5,     0,     5,     0,     5,     3,     3,
  786.      6,     7,     4,     3,     3,     1,     1,     1,     1,     1,
  787.      2,     3,     3,     3,     3,     2,     2,     2,     2,     1,
  788.      3,     4,     3,     5,     4,     3,     3,     2,     3,     3,
  789.      2,     6,     6,     4,     4,     1,     6,     4,     3,     6,
  790.      4,     3,     2,     2,     1,     3,     4,     2,     3,     0,
  791.      0,     1,     3,     2,     3,     1,     4,     2,     4,     2,
  792.      4,     2,     5,     3,     1,     1,     1,     1,     1,     1,
  793.      1,     1,     1,     2,     1,     3,     4,     4,     1,     1,
  794.      0,     0,     1,     3,     1,     1,     0,     6,     0,     1,
  795.      0,     2,     1,     1,     1,     1,     1,     1,     1,     1,
  796.      3,     1,     3,     0,     1,     1,     0,     8,     1,     0,
  797.      3,     5,     5,     2,     2,     4,     4,     1,     1,     3,
  798.      3,     1,     0,     3,     2,     2,     2,     2,     2,     2,
  799.      4,     2,     4,     3,     6,     6,     6,     9,     4,     7,
  800.      5,     8,     9,     9,     6,     9,     6,     9,     3,     6,
  801.      2,     4,     5,     1,     4,     7,     4,     4,     4,     1,
  802.      3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
  803.      3,     3,     3,     3,     3,     3,     3,     5,     3,     3,
  804.      3,     2,     1,     1,     1,     1,     3,     3,     0,     4,
  805.      0,     6,     2,     4,     2,     3,     2,     2,     1,     4,
  806.      4,     2,     7,     4,     4,     5,     3,     2,     2,     2,
  807.      5,     3,     5,     3,     6,     4,     4,     6,     1,     4,
  808.      0,     1,     1,     2,     1,     2,     0,     2,     2,     2,
  809.      3,     3,     3,     3,     2,     2,     1,     1,     2,     2,
  810.      1,     2,     2,     3,     1,     1,     2,     2,     1,     1,
  811.      2,     2,     1,     2,     2,     3,     1,     2,     1,     1,
  812.      1,     1,     4,     4,     1,     1,     1,     1,     1,     3,
  813.      1,     3,     0,     4,     0,     7,     4,     0,     7,     4,
  814.      0,     7,     4,     0,     6,     1,     3,     1,     1,     4,
  815.      4,     8,     1,     3,     1,     2,     3,     4,     1,     1,
  816.      3,     4,     6,     3,     5,     0,     7,     4,     0,     6,
  817.      3,     2,     4,     1,     0,     1,     0,     1,     1,     2,
  818.      2,     2,     2,     2,     2,     2,     3,     3,     2,     0,
  819.      3,     0,     3,     2,     1,     1,     0,     1,     2,     1,
  820.      3,     1,     1,     2,     2,     2,     3,     1,     1,     1,
  821.      2,     2,     1,     0,     1,     4,     3,     1,     2,     2,
  822.      3,     5,     5,     3,     3,     3,     3,     3,     5,     5,
  823.      3,     3,     3,     3,     1,     2,     2,     3,     3,     0,
  824.      1,     3,     4,     6,     4,     4,     3,     4,     6,     4,
  825.      4,     3,     1,     3,     1,     3,     2,     2,     0,     1,
  826.      2,     1,     2,     0,     2,     0,     2,     5,     5,     3,
  827.      5,     4,     3,     3,     5,     1,     1,     5,     3,     3,
  828.      1,     5,     5,     3,     5,     4,     3,     3,     1,     1,
  829.      3,     3,     5,     5,     3,     5,     3,     3,     3,     4,
  830.      3,     1,     1,     2,     2,     2,     3,     3,     7,     7,
  831.      5,     7,     3,     7,     7,     5,     7,     3,     1,     2,
  832.      2,     2,     1,     2,     3,     3,     2,     1,     3,     3,
  833.      2,     5,     3,     4,     3,     4,     2,     3,     2,     4,
  834.      5,     4,     5,     5,     5,     1,     1,     2,     2,     2,
  835.      0,     0,     1,     1,     2,     3,     1,     2,     3,     5,
  836.      5,     0,     0,     6,     1,     2,     1,     1,     1,     2,
  837.      0,     4,     1,     0,     0,     6,     0,     0,     7,     0,
  838.      0,     0,    10,     0,     0,     0,    10,     0,     7,     0,
  839.      5,     0,     7,     0,     4,     2,     2,     2,     3,     6,
  840.      8,    10,    12,     4,     3,     2,     2,     1,     2,     3,
  841.      6,     4,     6,     4,     3,     0,     7,     2,     0,     5,
  842.      3,     1,     2,     3,     3,     2,     2,     1,     0,     4,
  843.      2,     3,     3,     0,     0,     4,     0,     0,     4,     0,
  844.      4,     0,     1,     0,     0,     8,     3,     4,     4,     3,
  845.      4,     6,     6,     0,     1,     0,     1,     1,     0,     1,
  846.      1,     3,     4,     1,     3,     0,     1,     3,     2,     1,
  847.      1,     2,     2,     1,     3,     3,     5,     3,     5,     3,
  848.      3,     1,     1,     2,     1,     0,     1,     0,     2,     4,
  849.      1,     1,     1,     2,     2,     2,     1,     1,     1,     3,
  850.      1,     3,     2,     2,     2,     2,     2,     2,     2,     2,
  851.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  852.      2,     2,     2,     2,     2,     3,     2,     2,     2,     2,
  853.      3,     2,     2,     3,     2
  854. };
  855.  
  856. static const short yydefact[] = {     3,
  857.      0,     0,     0,   482,   301,   503,   290,   300,   289,     0,
  858.      8,     9,     0,   359,     0,     0,     0,   444,   444,   444,
  859.      0,     0,    76,    19,    60,     0,     0,     5,     6,     0,
  860.     13,    12,    11,    10,   267,   305,   121,     0,     0,   281,
  861.      0,   311,   299,     0,   370,   372,   376,   375,   354,     0,
  862.    444,   499,   302,   483,     4,    58,    59,   500,   444,   502,
  863.    261,   646,   105,   106,   349,   107,   352,   261,    29,     0,
  864.    715,   301,   442,   713,   712,   710,   692,   697,   698,     0,
  865.    704,   703,   689,   690,   688,   707,   696,   693,   694,   695,
  866.    699,   700,   686,   687,   683,   684,   685,   701,   702,   708,
  867.    709,     0,   691,   705,   305,   439,   293,     0,   302,    20,
  868.    665,     0,     0,     0,     0,     0,     0,   261,   485,   484,
  869.    486,     0,     3,     0,     0,   301,     0,     0,   370,   372,
  870.    668,     0,    90,    85,   267,     0,     0,   504,   501,   119,
  871.    120,   129,   461,     0,   444,   444,   456,     0,    57,     0,
  872.      0,   309,   277,   278,   444,   457,   301,   292,   291,    56,
  873.      0,   282,     0,     0,   286,   306,   307,   283,   285,   308,
  874.      0,    51,   106,   360,   361,   362,   363,   366,   374,   107,
  875.    109,   108,   110,   364,   369,   365,   377,   377,   393,     0,
  876.     68,   444,     0,   446,     0,     0,    71,     0,   444,   646,
  877.    668,   223,   442,   225,   265,   261,   261,     0,     0,   163,
  878.    263,   239,     0,     0,   262,     0,   261,   134,   133,   261,
  879.    135,   136,     0,   261,   137,     0,   123,   261,   194,   200,
  880.    126,   162,     0,   261,   226,     0,   261,   439,   293,   125,
  881.    439,     0,   224,   650,   651,   666,   666,     0,   647,   654,
  882.    351,     0,   346,     0,   138,   139,     0,     0,    28,   706,
  883.    711,   444,     0,   444,   444,   508,   646,   446,   714,   440,
  884.    295,   297,   443,   294,     0,   445,   498,   479,   478,   477,
  885.      0,     0,    16,     0,     7,     7,    45,    44,   668,     0,
  886.     31,    35,    39,    33,    37,    40,   313,    84,    91,    88,
  887.      0,   261,   267,     0,     0,     0,   531,    61,   537,    63,
  888.    377,   130,   116,   279,   280,     0,     0,   444,   444,   469,
  889.      0,     0,   470,    66,    55,    69,     0,    54,   444,     0,
  890.    446,     0,    53,   284,    52,    67,    70,   288,   287,   668,
  891.    312,   367,   368,   378,   371,   373,   415,   261,     0,   420,
  892.    420,     0,     0,   398,   668,   475,     0,   289,     0,   159,
  893.    281,     0,   481,     0,   261,   672,   673,     0,   671,     0,
  894.      0,   677,   679,   669,     0,     0,   324,   488,   493,   487,
  895.    668,     0,    74,   261,     0,     0,   170,   162,     0,     0,
  896.    172,   261,   261,   261,   261,     0,   248,     0,   264,     0,
  897.    249,   169,   166,   165,     0,     0,     0,     0,   167,   261,
  898.    118,   168,   261,   261,     0,   261,   261,   261,   261,   261,
  899.    261,   261,   261,   261,   261,   261,   261,   261,   261,   261,
  900.    261,   261,   233,   237,   238,   269,   270,   268,   261,   261,
  901.    261,   259,     0,   261,   191,   266,   111,   112,     0,   113,
  902.      0,   235,     0,   115,   222,   437,   242,   261,   438,   111,
  903.    112,   113,     0,   250,   439,   439,   444,   649,   439,   653,
  904.    652,     0,   435,   357,   433,   348,     0,   303,     0,   304,
  905.     30,   517,   441,   511,   507,     0,   444,     0,     0,     0,
  906.    519,     0,   444,   646,   446,   298,   296,     0,    22,     0,
  907.     27,   117,     0,    15,    18,    17,   313,    50,    46,    49,
  908.     47,    48,    43,     0,     0,     0,     0,   324,   105,   106,
  909.     96,   261,     0,    92,     0,   121,     0,     0,   339,     0,
  910.    335,    86,     0,     0,    62,    65,   538,   532,   127,   460,
  911.    459,     0,     0,   444,   444,     0,   444,     0,   446,   454,
  912.    324,   310,   450,     0,     0,     0,   453,     0,   444,   444,
  913.    313,   390,   389,   388,   122,   379,   380,   383,   382,     0,
  914.      0,   417,   416,   482,   461,   444,   261,   646,   668,     0,
  915.    421,   301,   444,   646,   668,     0,     0,   353,   400,   399,
  916.     83,   444,   444,   444,   480,   447,   674,   675,   676,     0,
  917.    678,   681,     0,     0,     0,   323,   444,     0,   444,     0,
  918.     75,   444,     0,     0,     0,     0,   301,     0,   164,     0,
  919.      0,     0,   247,   261,   228,   227,     0,   261,   124,   220,
  920.    219,   638,   637,     0,   217,   216,   214,   215,   213,   212,
  921.    211,   208,   209,   210,   206,   207,   201,   202,   203,   204,
  922.    205,   221,     0,     0,   261,   189,   261,   293,   174,   261,
  923.      0,     0,     0,   114,   254,   261,   236,     0,   252,   261,
  924.      0,   444,   444,   646,   662,   663,   660,   661,   668,   648,
  925.    656,   667,   658,   655,   261,   358,     0,   357,   161,   160,
  926.    510,   506,     0,   505,   509,   444,   518,   513,     0,   515,
  927.      0,     0,    21,   366,   364,   369,    14,   324,    32,    36,
  928.     34,    38,     0,     0,    94,     0,    98,   261,   100,   261,
  929.      0,   102,   261,   223,   301,   261,   336,     0,   340,     0,
  930.     87,    64,     0,   539,     0,   533,   534,     0,     0,     0,
  931.      0,     0,   468,   464,     0,     0,     0,   467,     0,   317,
  932.    444,   444,   444,   452,     0,     0,   324,   129,     0,   386,
  933.    392,   391,   385,   384,   413,   414,   261,   261,   404,   405,
  934.    668,   324,     0,   313,     0,   401,   411,   412,   668,     0,
  935.    407,   313,   406,   408,     0,   418,   419,   476,   473,   474,
  936.    680,     0,   670,     0,     0,   321,   491,     0,     0,     0,
  937.    496,     0,     0,     0,   668,   240,   171,   173,   197,   199,
  938.    198,   244,   245,     0,     0,   230,     0,   195,   261,   231,
  939.    234,     0,     0,   439,   439,   179,   261,     0,   192,   261,
  940.      0,   257,     0,   256,   261,   241,     0,   664,   511,   507,
  941.    444,    72,     0,     0,   436,   434,   350,     0,   444,   444,
  942.    516,   444,   514,    23,    26,     0,     0,    41,    95,    93,
  943.      0,     0,   104,   261,     0,     0,     0,     0,   337,   333,
  944.      0,     0,   223,   542,   554,   557,     0,   531,   261,     0,
  945.      0,     0,   261,     0,   608,     0,     0,     0,     0,   261,
  946.      0,   588,   634,     0,   549,     0,     0,     0,   527,   547,
  947.    553,   526,   548,     0,   261,     0,   614,     0,   560,   564,
  948.    535,     0,   458,   455,   472,   471,   444,   444,   444,   466,
  949.    315,   451,   448,   449,   525,   524,   320,   387,   381,   324,
  950.    324,    78,   427,   444,   324,   482,   461,   261,   668,   422,
  951.     81,   444,     0,   682,   314,     0,     0,   444,   444,   444,
  952.    444,   444,   444,    73,   261,   246,   355,   218,   131,   260,
  953.      0,     0,     0,     0,     0,   181,   193,     0,   253,     0,
  954.    251,     0,   657,   659,   347,   522,   520,   512,    25,    42,
  955.     97,    99,     0,   101,     0,   344,   261,   338,     0,   341,
  956.      0,   536,   530,   541,   606,   531,   531,   531,     0,     0,
  957.      0,   574,   576,   577,   578,     0,   261,     0,   672,   673,
  958.      0,     0,   609,     0,   615,   589,     0,   607,   635,     0,
  959.    550,   275,   668,     0,   276,     0,     0,   668,     0,   540,
  960.    529,   528,   551,   598,     0,     0,   587,   586,     0,   603,
  961.      0,   614,     0,   611,     0,   531,   531,     0,   465,   462,
  962.    463,     0,   318,   425,   426,   402,   403,   668,   423,   261,
  963.    261,   324,   313,   409,   410,   668,   328,   329,     0,   326,
  964.    322,   492,   489,   490,   497,   494,   495,     0,     0,     0,
  965.    131,   232,   190,     0,   293,   175,   185,   187,   176,   177,
  966.    258,   255,   444,   444,   523,   521,   103,   342,     0,     0,
  967.    334,     0,     0,   261,   545,     0,     0,   531,   627,     0,
  968.    630,   261,   570,   261,   261,   579,     0,   585,   595,     0,
  969.    261,   531,     0,   261,   531,   590,     0,   272,   313,   271,
  970.    274,   273,   313,   150,   601,     0,   605,   604,   599,   613,
  971.    612,     0,     0,   128,   316,     0,    77,     0,   324,   324,
  972.    432,   324,    80,     0,     0,     0,   243,   196,   132,   439,
  973.    439,   180,   261,     0,   446,   446,   522,   520,     0,   345,
  974.    142,   261,   543,   555,   546,   558,   631,   629,     0,   628,
  975.    149,     0,     0,   261,     0,   575,   584,   594,     0,   610,
  976.    592,     0,   616,     0,   150,   261,   552,   596,   624,   146,
  977.      0,   145,     0,   319,   424,   430,   431,   428,     0,     0,
  978.    327,   325,     0,     0,     0,   182,     0,     0,   343,     0,
  979.    150,   261,     0,     0,     0,   568,   668,   571,   572,     0,
  980.      0,   639,     0,   532,   154,   617,   600,   561,   565,     0,
  981.      0,   330,   331,   186,   188,   178,   183,   184,   143,   544,
  982.    532,   556,   158,   140,   261,     0,   633,   632,   150,   313,
  983.    261,   593,   591,     0,     0,   640,   641,   580,   151,     0,
  984.      0,     0,     0,     0,   429,     0,   155,     0,     0,   559,
  985.    569,   324,   573,   261,   639,     0,     0,     0,     0,   620,
  986.    597,   618,     0,     0,     0,     0,     0,     0,   141,     0,
  987.      0,     0,   581,   642,   153,   152,     0,     0,   622,   562,
  988.    566,     0,   157,   156,   147,   643,     0,     0,   621,   619,
  989.    623,     0,   261,   261,   332,     0,   644,     0,   582,   625,
  990.    563,   567,   148,     0,     0,     0,   645,   583,   626,     0,
  991.      0,     0
  992. };
  993.  
  994. static const short yydefgoto[] = {  1340,
  995.      1,     2,   124,   505,   893,    28,    29,    30,   275,   498,
  996.    499,    31,    70,    32,   514,   516,   515,   517,   513,    33,
  997.     34,    35,   349,   134,   135,   136,   299,   523,   524,   564,
  998.    185,   452,    36,    37,   142,   758,   226,   227,   312,   738,
  999.    313,  1082,   228,   894,  1256,  1173,  1201,  1202,  1326,  1196,
  1000.   1197,  1252,   255,   229,   394,   230,   256,   232,   407,   959,
  1001.    443,   233,   234,   235,   137,   236,   237,   895,   340,   896,
  1002.    168,   897,   238,   271,   389,   272,   151,    41,   377,   152,
  1003.   1052,   341,  1146,    42,   947,   606,  1069,  1070,   871,   729,
  1004.    730,    43,   477,   252,  1080,   687,    44,    45,    46,    47,
  1005.    187,   188,    48,    49,   345,   566,   567,   568,   569,   570,
  1006.    190,   352,   353,   354,   580,   581,   940,   474,   475,   240,
  1007.    675,   241,   111,   364,   365,   153,   322,   154,   242,    52,
  1008.    109,   270,   489,   156,   898,   899,   538,   735,   736,   737,
  1009.    308,   900,   901,   996,  1221,  1106,   902,   903,  1134,   997,
  1010.   1222,   998,  1223,  1046,  1273,  1323,  1047,  1274,  1324,  1259,
  1011.   1184,  1261,  1115,  1236,  1199,   904,   905,   906,  1122,   907,
  1012.   1042,   908,  1125,  1271,  1308,  1307,  1322,  1237,  1336,   909,
  1013.    910,  1020,   634,  1265,  1266,  1267,  1328,   490,   249,   250,
  1014.    677,   112,   465,   683,   197,   373,   602,   374,   603,   243
  1015. };
  1016.  
  1017. static const short yypact[] = {    92,
  1018.   2237,  5571,   -21,    57,   913,-32768,-32768,-32768,-32768,   183,
  1019. -32768,-32768,   115,-32768,   348,  2123,   294,-32768,-32768,-32768,
  1020.    906,   318,-32768,-32768,-32768,   147,   316,-32768,   267,  5739,
  1021. -32768,-32768,-32768,-32768,   483,   592,    56,  1603,  7081,   922,
  1022.     27,-32768,-32768,   563,-32768,-32768,-32768,-32768,   351,  1003,
  1023. -32768,-32768,   617,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  1024.   6586,  1531,-32768,-32768,   299,-32768,   375,  6586,-32768,   168,
  1025. -32768,   354,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   374,
  1026. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  1027. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  1028. -32768,   328,-32768,-32768,   498,  1001,  1086,  1151,-32768,-32768,
  1029.    531,   906,    69,    69,    23,   497,   406,  6586,-32768,-32768,
  1030. -32768,   547,   523,  5688,   421,    23,  1791,  7222,   177,   307,
  1031.    762,   616,-32768,   178,    16,   341,   341,-32768,-32768,-32768,
  1032. -32768,   537,    23,   631,-32768,-32768,-32768,  1783,-32768,  1477,
  1033.    192,-32768,   601,   786,-32768,-32768,  1243,-32768,-32768,-32768,
  1034.    544,   922,   201,  1165,-32768,-32768,-32768,  1084,-32768,-32768,
  1035.   1791,-32768,   354,-32768,-32768,-32768,-32768,-32768,-32768,   318,
  1036. -32768,-32768,-32768,-32768,-32768,   764,   607,   607,-32768,  1936,
  1037. -32768,-32768,  2445,   559,   454,   596,   453,  1338,-32768,  1531,
  1038.    135,    57,   598,-32768,-32768,  6792,  6869,   610,   632,-32768,
  1039. -32768,-32768,   636,   686,  1976,   197,  6667,-32768,-32768,  6667,
  1040. -32768,-32768,  4953,  6667,-32768,   462,-32768,  6667,-32768,-32768,
  1041.   5566,  1587,   719,  6259,   753,    87,  6667,  1001,   369,-32768,
  1042.   2677,   134,-32768,-32768,-32768,-32768,   365,   689,   252,   784,
  1043. -32768,   197,   700,   752,   812,  7303,   763,   878,-32768,-32768,
  1044. -32768,-32768,   870,-32768,-32768,-32768,  7236,   825,-32768,   790,
  1045.   1086,-32768,-32768,  1086,   911,-32768,-32768,   786,   786,-32768,
  1046.    571,    35,-32768,  5498,-32768,-32768,-32768,-32768,   562,   441,
  1047. -32768,-32768,-32768,-32768,-32768,-32768,   749,-32768,   333,-32768,
  1048.   5034,  6667,-32768,   341,   341,   842,-32768,-32768,-32768,-32768,
  1049.    607,-32768,-32768,   601,   786,   744,   744,-32768,-32768,-32768,
  1050.   2216,   431,-32768,-32768,-32768,   453,  1791,-32768,-32768,  4110,
  1051.    841,  1907,-32768,  1084,-32768,-32768,   453,-32768,-32768,   562,
  1052. -32768,-32768,-32768,    98,-32768,-32768,-32768,  6667,   783,   513,
  1053.   7019,    29,  1479,-32768,   762,   531,   901,   598,    65,  7401,
  1054.    586,   903,-32768,   865,  6667,    57,    23,   910,-32768,   592,
  1055.    942,-32768,-32768,   931,  1422,   932,   990,    23,   318,-32768,
  1056.    135,   928,-32768,  6667,   598,  4953,-32768,  1327,   685,  4953,
  1057. -32768,  6667,  6748,  6667,  6586,  1422,-32768,   709,-32768,   738,
  1058. -32768,-32768,-32768,-32768,   930,   957,   842,   966,-32768,  6586,
  1059. -32768,-32768,  6667,  6667,  5115,  6667,  6667,  6667,  6667,  6667,
  1060.   6667,  6667,  6667,  6667,  6667,  6667,  6667,  6667,  6667,  6667,
  1061.   6667,  6667,-32768,-32768,-32768,-32768,-32768,-32768,  6667,  6667,
  1062.   6667,   950,  1204,  5439,-32768,-32768,    57,    23,   996,   318,
  1063.    272,   746,   134,-32768,-32768,-32768,-32768,  6667,-32768,-32768,
  1064. -32768,-32768,   197,   794,   718,   718,-32768,-32768,  6913,-32768,
  1065. -32768,  5034,   983,  1006,-32768,-32768,   197,-32768,  5358,-32768,
  1066. -32768,   531,   790,   678,   678,    57,-32768,   591,   971,   976,
  1067. -32768,   937,-32768,  1531,   973,-32768,  1086,   692,-32768,  1276,
  1068. -32768,-32768,   993,-32768,-32768,-32768,   749,-32768,-32768,-32768,
  1069. -32768,-32768,-32768,   999,  1005,  1010,  1013,   990,    57,    23,
  1070. -32768,  6667,   716,-32768,   810,   490,   197,   811,-32768,  4542,
  1071.   7401,-32768,   214,   341,-32768,-32768,-32768,    19,-32768,   601,
  1072.    601,   744,   744,-32768,-32768,   670,-32768,  4218,   986,-32768,
  1073.    990,-32768,   531,  1016,   303,  1030,-32768,  1018,-32768,-32768,
  1074.    749,-32768,-32768,-32768,-32768,  1089,-32768,-32768,  1140,   167,
  1075.   7280,-32768,-32768,   813,    43,   856,  6667,  7126,   562,   205,
  1076. -32768,  1023,   912,  7126,   778,     8,  1093,-32768,-32768,-32768,
  1077.    920,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   454,
  1078. -32768,-32768,   314,   547,  1067,  1104,-32768,  4326,-32768,  4434,
  1079. -32768,-32768,   317,  1057,  1059,  1065,   244,  1072,-32768,  1083,
  1080.   1090,  1122,-32768,  6667,-32768,-32768,  1092,  6343,-32768,  7401,
  1081.   7401,-32768,-32768,  1135,  7437,  2330,  2631,  2664,  2361,  1667,
  1082.   2039,  1325,  1325,  1325,  1267,  1267,  1066,  1066,-32768,-32768,
  1083. -32768,-32768,   336,  1091,  6667,-32768,  6586,   543,  1145,  6667,
  1084.   1096,  1099,  1157,-32768,-32768,  6667,   816,   337,-32768,  6667,
  1085.   1634,-32768,-32768,  6975,-32768,   786,-32768,-32768,   135,-32768,
  1086.   1160,-32768,  1161,-32768,  6667,   197,  1087,  1006,-32768,  7401,
  1087.    790,   790,   233,-32768,-32768,-32768,-32768,   531,  1115,-32768,
  1088.   1113,   911,-32768,  1128,   769,  1170,-32768,   990,-32768,-32768,
  1089. -32768,-32768,   441,   345,-32768,   333,-32768,  6667,-32768,  6667,
  1090.    883,-32768,  6667,   836,   466,  6667,-32768,  1171,-32768,    71,
  1091. -32768,-32768,   197,-32768,  3678,  1193,-32768,   351,   694,   727,
  1092.    744,   744,-32768,   531,  1124,   371,  1127,-32768,  1129,  1183,
  1093. -32768,-32768,-32768,-32768,   744,   744,   990,   537,    98,-32768,
  1094. -32768,-32768,-32768,  1140,-32768,-32768,  6667,  6667,-32768,-32768,
  1095.    135,  2838,  1136,   938,  1775,-32768,-32768,-32768,   135,  1143,
  1096. -32768,   997,-32768,-32768,  5644,-32768,-32768,   531,   531,   531,
  1097. -32768,  1422,-32768,    45,  1169,-32768,   531,  1150,   382,  1152,
  1098.    531,  1153,   384,  1158,   135,-32768,-32768,-32768,-32768,-32768,
  1099. -32768,-32768,-32768,  1172,   395,-32768,  4869,-32768,  6667,-32768,
  1100. -32768,   174,   419,  1001,  2677,-32768,  6667,  5034,-32768,  6667,
  1101.   1254,-32768,   478,-32768,  6667,-32768,   482,   786,  1382,  1382,
  1102. -32768,-32768,  5034,  5034,  7401,-32768,-32768,  1162,-32768,-32768,
  1103.    531,-32768,-32768,-32768,-32768,   295,   441,-32768,-32768,-32768,
  1104.    485,   486,-32768,  6667,   502,  2504,  5034,  4626,-32768,-32768,
  1105.    209,   959,   917,-32768,-32768,-32768,  1181,-32768,  6667,  1211,
  1106.   1166,  1185,  6424,   152,-32768,   637,  1224,   454,  1225,  6505,
  1107.    276,-32768,  1268,  1186,-32768,  1954,  7177,  2781,-32768,-32768,
  1108.   1279,-32768,-32768,  2581,  5835,  2922,-32768,  3030,-32768,-32768,
  1109. -32768,  1936,-32768,-32768,   601,   601,-32768,-32768,-32768,-32768,
  1110. -32768,   531,   531,   531,   601,   601,  1242,-32768,-32768,  2838,
  1111.   2838,-32768,-32768,   995,   990,   953,   658,  6667,   562,-32768,
  1112. -32768,  1007,  4453,-32768,-32768,   877,  5034,-32768,-32768,-32768,
  1113. -32768,-32768,-32768,-32768,  6667,-32768,  1249,  7421,   537,-32768,
  1114.   1237,  1198,  1199,   510,    70,-32768,-32768,  1262,-32768,   511,
  1115. -32768,  2229,-32768,-32768,-32768,   678,   678,   531,-32768,-32768,
  1116. -32768,-32768,   512,-32768,  5034,-32768,  6667,-32768,  1250,-32768,
  1117.    197,-32768,-32768,-32768,-32768,-32768,-32768,   842,  4707,  1226,
  1118.   7335,-32768,-32768,-32768,-32768,  1202,  6667,  1205,   165,    28,
  1119.   1209,   896,-32768,   898,-32768,-32768,  1210,-32768,-32768,  1235,
  1120. -32768,-32768,   909,   274,-32768,  1214,   279,   757,  1216,-32768,
  1121. -32768,-32768,-32768,-32768,   454,   197,-32768,-32768,  1017,-32768,
  1122.   3138,-32768,  1025,-32768,  3246,-32768,-32768,    39,   531,   531,
  1123.    531,  5034,-32768,-32768,-32768,-32768,-32768,   135,  1271,  6667,
  1124.   6667,  2838,   749,-32768,-32768,   135,  1246,-32768,   549,-32768,
  1125. -32768,   531,   531,   531,   531,   531,   531,  1227,  4788,  1238,
  1126.    537,-32768,-32768,  1422,   698,  1295,  1282,  1283,-32768,-32768,
  1127. -32768,-32768,-32768,-32768,   790,   790,-32768,-32768,  7357,  5034,
  1128. -32768,   907,   907,  6153,-32768,  1352,  1265,  1274,-32768,  1269,
  1129. -32768,  6586,-32768,  6667,  5941,-32768,  1277,-32768,-32768,  1278,
  1130.   6667,-32768,  1284,  6667,-32768,-32768,   547,-32768,   749,-32768,
  1131. -32768,-32768,   749,  1331,   931,  1354,-32768,-32768,-32768,-32768,
  1132. -32768,  5196,  5196,-32768,-32768,  5034,-32768,  5034,  2838,  2838,
  1133. -32768,   990,-32768,   394,   877,  1303,-32768,-32768,-32768,  1001,
  1134.   2677,-32768,  6667,  5034,-32768,-32768,  1382,  1382,  5034,-32768,
  1135. -32768,  6586,-32768,-32768,-32768,-32768,-32768,-32768,  3786,-32768,
  1136. -32768,  1309,  1791,  5941,  7379,-32768,-32768,-32768,   566,-32768,
  1137. -32768,   567,-32768,    44,-32768,  6153,-32768,-32768,-32768,-32768,
  1138.   1312,-32768,  1313,-32768,-32768,-32768,-32768,  1335,   572,  1315,
  1139. -32768,-32768,  1316,  1318,   595,-32768,  1322,  1323,-32768,  1321,
  1140.   1331,  6047,   914,  1038,  3354,-32768,   562,-32768,-32768,  1332,
  1141.   1334,  1426,  1341,    66,-32768,-32768,  1350,-32768,-32768,  5034,
  1142.   1438,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  1143.     84,-32768,-32768,-32768,  6667,  1343,-32768,-32768,  1331,   749,
  1144.   5941,-32768,-32768,  1366,   309,  1400,-32768,-32768,-32768,  3894,
  1145.     59,  1369,  5277,  5277,-32768,  1403,-32768,  4002,  1355,-32768,
  1146. -32768,   990,-32768,  6667,  1426,  1351,  1426,  1048,  3462,-32768,
  1147. -32768,-32768,  1422,  1357,  1358,  1449,  1062,  3570,-32768,  1411,
  1148.   1363,   360,-32768,-32768,-32768,-32768,   842,   842,   197,-32768,
  1149. -32768,  1367,-32768,-32768,-32768,-32768,  1462,  1368,-32768,-32768,
  1150. -32768,  1370,  6047,  6047,-32768,  5034,-32768,   606,-32768,-32768,
  1151. -32768,-32768,-32768,  1465,  1371,   842,-32768,-32768,-32768,  1490,
  1152.   1491,-32768
  1153. };
  1154.  
  1155. static const short yypgoto[] = {-32768,
  1156.   1356,-32768,-32768,  1207,    18,  1492,-32768,-32768,-32768,-32768,
  1157.    793,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  -666,  1376,
  1158.   1381,-32768,-32768,-32768,-32768,  1373,-32768,-32768,   795,    -8,
  1159.   1012,  -199,   145,   -22,-32768,-32768,  1395,  1106,  -922,-32768,
  1160.    760,   438,-32768,    61,-32768,   418,   379,  -917,-32768,   331,
  1161.  -1139,  -285,  1194,   968,-32768,  -178,   933,  -176,-32768,-32768,
  1162. -32768,-32768,  -189,  -106,  -101,-32768,-32768,   524,   -31,   234,
  1163.   1384,  1440,   -10,  1255,    -1,     0,   635,   -18,  -240,-32768,
  1164. -32768,  1206,-32768,-32768,-32768,  -355,-32768,   393,-32768,  -177,
  1165.    732,   -26,-32768,-32768,-32768,   863,  -252,  1522,  1523,-32768,
  1166. -32768,-32768,-32768,-32768,  -153,-32768,   799,   984,  -500,-32768,
  1167.    822,   653,   782,  -340,  1217,-32768,-32768,  1095,   887,   -63,
  1168.    -94,    -7,  1828,  -244,-32768,  -111,  1248,  1467,   659,-32768,
  1169.      2,  -235,-32768,   -97,  -840,  -815,  -759,  -828,-32768,   839,
  1170.   -120,  -126,-32768,-32768,-32768,-32768,  -717, -1055,-32768,-32768,
  1171. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  1172. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  1173.    541,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  1174. -32768,-32768,   -89,   302,-32768,   305,-32768,    17,-32768,  -257,
  1175.    437,   -24,  1342,-32768,   -55,  -575,   801,   560,-32768,  1575
  1176. };
  1177.  
  1178.  
  1179. #define    YYLAST        7510
  1180.  
  1181.  
  1182. static const short yytable[] = {    40,
  1183.     40,    67,    53,    53,   257,   106,   150,   161,   108,   309,
  1184.    309,   269,   590,   170,   107,   282,   310,   501,    27,    27,
  1185.    163,   186,   500,   492,   791,   399,   198,   483,    40,   388,
  1186.    388,   488,   314,   305,   346,   184,  1081,   162,   403,   169,
  1187.    388,   404,   464,   388,   446,   409,   858,   388,  1175,   412,
  1188.    323,   388,   733,   446,   446,   445,   518,   388,   775,   239,
  1189.     40,   366,   367,     6,   587,  1041,   239,  1045,    60,   764,
  1190.    133,     4,   115,    60,   587,   297,   276,   171,   248,  1290,
  1191.    170,  1250,  1031,    56,    57,   551,   558,    61,    60,   447,
  1192.    448,    -1,    61,   449,   326,   289,   290,   768,  1232,   733,
  1193.     63,   173,    58,   562,   368,   140,   274,    61,   337,    16,
  1194.    141,   457,   783,   784,    18,   479,   239,   733,  1000,  1281,
  1195.    303,   868,    40,   532,   734,    53,   162,    16,   254,    19,
  1196.    332,   172,  -106,   563,   588,   170,   460,   461,   503,    20,
  1197.   1235,   170,   276,   456,  1144,   383,   459,  1233,   945,   119,
  1198.    120,    21,   458,    22,    63,    64,   369,   539,  1081,   408,
  1199.    105,   169,   713,    22,  1291,   116,  1253,   339,   593,    63,
  1200.    173,  1269,   761,  1090,    16,    26,   869,   309,   309,   537,
  1201.   1032,   450,   116,   535,   536,    63,    64,  1038,    40,  1277,
  1202.    980,   361,   180,   451,  1182,   750,   372,    68,    40,    63,
  1203.     64,   534,   762,   855,   540,   541,   105,   402,   399,   362,
  1204.     58,   681,   170,   400,   376,   619,   382,   388,   258,   300,
  1205.    195,   239,  1007,   323,   479,  1031,   291,   196,   462,  1031,
  1206.    301,   292,    65,   507,    38,    38,  1102,  1103,  1104,   274,
  1207.    463,   121,   327,   473,   170,   162,    66,   170,   691,   692,
  1208.    701,   171,   105,   667,  1220,   775,   116,   116,   116,   991,
  1209.    302,   180,   468,   127,   479,    40,   708,  1253,  1253,  -105,
  1210.    496,   116,   259,    40,    63,    64,   526,    66,   663,   960,
  1211.    627,   293,    40,   406,   561,    53,  1142,  1143,   116,    60,
  1212.    525,    66,   116,   849,   684,   246,   328,    63,   173,   591,
  1213.    528,    27,   469,   850,   749,   335,   470,   170,    61,   776,
  1214.   1012,   601,  1014,   992,   376,   116,   123,   731,   579,   585,
  1215.    757,   565,   614,  1032,   327,   611,   615,  1032,   361,   171,
  1216.   1018,   621,   622,   339,   170,   519,   520,     6,  1225,   370,
  1217.    118,   306,   116,   376,   105,   471,   556,   810,  1179,   162,
  1218.     69,    40,   857,   479,   376,   979,   294,    38,   110,   105,
  1219.    169,   295,  1190,  1285,   792,  1193,    66,   479,    72,     6,
  1220.    158,     8,   159,   107,   521,   166,   167,    10,  1130,   659,
  1221.    116,    10,   118,  1132,   239,   105,   479,   479,   239,   180,
  1222.    307,   105,    13,   239,   107,   479,  1209,  1186,   122,    14,
  1223.    189,   927,  1210,    14,   251,  1270,   752,   309,   239,  1031,
  1224.    457,   296,  1286,   732,  1317,   522,   933,   793,    61,   105,
  1225.    806,   479,  1278,   350,   253,   596,   246,   180,   260,  1289,
  1226.    739,   740,   479,   246,   479,   483,   261,  1298,   488,   820,
  1227.    836,   658,   664,   370,   501,   479,   406,   192,   859,   500,
  1228.    406,   458,   616,   618,   664,   620,   366,   367,     6,    22,
  1229.    116,   116,   693,  1318,   508,   116,  1228,    40,   473,   479,
  1230.    170,   116,   547,  1031,   918,   633,   116,   186,    11,    12,
  1231.    323,   829,  1031,   388,  -313,   949,   323,   952,   193,   194,
  1232.    509,   705,    40,   510,   116,   511,   496,   794,   956,   368,
  1233.    246,   654,   138,  -313,   661,  -313,   132,  1032,   246,   280,
  1234.    699,    60,   410,   548,   549,   574,   575,    38,   721,   105,
  1235.   -106,   728,   961,   774,   376,   287,   288,   411,   479,   782,
  1236.     61,   719,   479,   935,   550,   479,   479,   133,   276,   140,
  1237.    105,   935,   139,  1283,   141,   512,   361,   565,    22,   166,
  1238.    167,   369,   479,    16,   576,    10,   205,  -313,    18,   144,
  1239.    479,   479,   479,   246,   747,    63,   173,   577,   174,   175,
  1240.    176,  1032,   720,   145,  1054,  1055,    40,    14,   376,  1059,
  1241.   1032,   969,    40,   146,   826,   971,   350,   105,   981,   982,
  1242.    147,   165,   166,   167,   773,   578,   138,   177,    10,  1155,
  1243.    780,   372,   590,   691,   692,   984,   361,    22,   361,   116,
  1244.    116,   178,   179,  1089,  1092,  1097,   479,   479,   298,    26,
  1245.     14,   410,  1241,   842,   800,   827,   804,   457,   283,   915,
  1246.    916,   170,   493,     4,   143,   311,   502,   139,   105,  1009,
  1247.   1010,     6,   329,   925,   926,   479,   824,   195,   333,   825,
  1248.    966,   967,  1156,   388,   196,   239,  1334,   180,   199,    51,
  1249.     51,   344,   181,   182,   183,   973,   974,   363,   458,  1230,
  1250.   1231,    16,    40,   494,   495,  1242,    18,   473,   375,    51,
  1251.    384,   565,   368,   330,   331,   276,   116,   116,    51,   986,
  1252.    990,   145,   392,   526,   694,  1292,   155,   155,  1246,   200,
  1253.     40,   146,   246,    60,   166,   167,  1151,   525,   147,  1335,
  1254.     10,   547,  1061,   148,   393,   932,   715,   528,   395,   262,
  1255.      4,   115,    61,   941,   870,    22,   457,   246,   601,   962,
  1256.    963,   180,    14,   361,   369,   329,   565,    26,   264,  1162,
  1257.   1095,  1096,   702,   939,   370,   211,     4,   143,   265,   954,
  1258.    396,   276,   548,   549,   398,   266,   442,   703,    16,   262,
  1259.    267,   268,   446,    18,   671,   -89,   716,   458,   329,  1071,
  1260.     51,    51,    51,   743,    11,    12,   330,   331,   672,   623,
  1261.   1163,   246,    51,    40,    16,   155,   155,   665,   673,    18,
  1262.    107,   376,   467,  1206,  1207,   266,  1208,   913,   192,   376,
  1263.    674,   268,   155,   192,   145,   476,   155,  1098,   728,   330,
  1264.    331,   246,    22,   342,   146,   116,   972,   246,   343,   -24,
  1265.    624,   147,  1152,   274,    26,   965,   148,   192,   666,   155,
  1266.    914,   493,   572,   565,   -24,   669,   472,   573,    22,   193,
  1267.    194,   246,   195,   246,   193,   194,   105,   195,    51,   196,
  1268.     26,   717,   722,   371,   196,   478,    51,   834,    58,   989,
  1269.    370,  -278,   479,   195,  1023,  1026,   480,   767,   193,   194,
  1270.    196,  1105,   494,   495,  1145,  1008,   670,  1011,  1027,  1067,
  1271.    481,    58,   781,  1063,  1068,   116,   116,   372,   551,   372,
  1272.   -105,   307,   718,   723,   453,   162,   361,  1086,   835,   116,
  1273.    116,   990,   678,   361,   361,   682,   361,   246,     4,   115,
  1274.     40,   262,   597,   598,    72,     6,     7,     8,     9,   116,
  1275.   1217,  1218,  1170,    10,   863,   487,  1300,   165,   166,   167,
  1276.    264,  1095,  1096,   491,    10,   246,   105,  1120,    13,  1123,
  1277.    265,    40,    51,  1006,   599,    14,    16,   266,  1171,   557,
  1278.   1017,    18,   267,   268,    59,  1254,    14,   527,    60,  1085,
  1279.    769,   770,    58,    11,    12,   864,    19,  1129,  1204,   105,
  1280.   1205,   995,  1133,   595,   155,   155,    20,    61,  1121,   155,
  1281.   1124,   600,  1101,   116,   116,   155,  1216,   -79,    21,  1172,
  1282.     51,  1219,   -79,   231,   195,    62,  1255,   361,    58,   655,
  1283.     22,   196,  1147,   191,   592,    22,   594,  1060,   155,   155,
  1284.   1153,    51,    26,  1128,   604,  1078,   777,   778,   350,  1282,
  1285.   1194,   605,    11,    12,   786,   787,  -668,  1136,  -668,  -668,
  1286.    370,   612,   370,   625,  -668,   685,   372,  1331,  1332,   361,
  1287.    116,   662,   262,   361,   192,   697,   -82,   263,  -461,  -461,
  1288.    231,   -82,  -668,  -668,  -461,  -668,   686,  -668,   170,  1110,
  1289.    626,   264,  1275,   993,   994,  1213,  1214,  1117,    60,   628,
  1290.    989,   265,  -461,  1160,   695,  -461,  1161,   768,   266,   696,
  1291.    376,   700,   107,   267,   268,   193,   194,    61,   195,   338,
  1292.    166,   167,   166,   167,   748,   196,    10,   707,    10,  1056,
  1293.   1057,  1183,   361,   709,   108,   105,  -461,  -668,  -461,   710,
  1294.    239,  1064,  1065,   361,   711,  -461,   116,   712,    14,   751,
  1295.     14,   993,  1137,    51,    51,   360,   754,    51,  -461,   993,
  1296.   1140,  1183,  1183,   753,   108,   108,   430,   431,   432,   759,
  1297.    239,   239,   993,  1257,   760,   350,   376,   785,  1333,   795,
  1298.    376,  1227,   993,  1305,    72,     6,   796,     8,   273,   274,
  1299.    807,  1183,   808,    10,   108,   336,   993,  1313,   809,   455,
  1300.    239,  1260,  1181,   387,   391,   811,   350,   361,    13,   370,
  1301.   1319,  1320,   361,  1294,  1295,    14,   812,   814,  -668,   819,
  1302.   -668,  -668,   847,   813,   361,   816,  -668,   828,   832,   821,
  1303.    155,   155,  1181,  1181,   830,   831,   192,    72,     6,  1339,
  1304.      8,    73,   843,   844,  -668,  -668,    10,  -668,   852,  -668,
  1305.    361,   853,   180,   361,   856,   867,   733,   917,   105,  1309,
  1306.    919,    13,  1181,   531,   360,   921,   155,   920,    14,   934,
  1307.     72,     6,   155,     8,    73,    22,   942,   193,   194,    10,
  1308.    195,   946,   656,   948,   955,   950,   951,   196,   371,   361,
  1309.    968,   953,   360,   999,    13,  1002,  -461,   975,   361,  -278,
  1310.   1003,    14,   372,  1013,  1015,  1019,   361,   376,    63,   173,
  1311.    571,   174,   175,   176,  -461,  1083,   657,   361,    60,  1004,
  1312.   1021,   107,  -461,  1033,  1053,  -461,   361,  -461,    22,  1079,
  1313.   1321,  1087,  1088,  1091,  1100,   105,  1116,    61,  1112,  1118,
  1314.    177,   116,   116,  1119,  1126,  1279,   360,  1127,  1131,  1084,
  1315.    993,   361,   361,  1148,   704,   179,  -461,   116,  1154,    51,
  1316.   1157,    22,   841,   633,   633,   428,   429,   430,   431,   432,
  1317.      4,   378,   231,  1158,  1301,   630,   631,  1164,   635,   636,
  1318.    637,   638,   639,   640,   641,   642,   643,   644,   645,   646,
  1319.    647,   648,   649,   650,   651,  1165,  1166,  1176,   433,  1177,
  1320.    180,   652,   360,  1180,   527,   181,   182,   183,    16,  1178,
  1321.   1195,  1187,  1188,    18,     4,   115,   359,  1240,  1191,   276,
  1322.    360,   426,   427,   428,   429,   430,   431,   432,    19,   155,
  1323.    155,   434,   435,  1198,   531,   436,  1212,   438,    20,   440,
  1324.    441,   690,  1226,   155,   155,   370,  1238,  1239,  1243,  1244,
  1325.     21,  1245,    16,   262,  1249,    72,     6,    18,     8,    73,
  1326.   1247,  1248,   379,   155,    10,  1264,  1262,   105,  1263,  1272,
  1327.     39,    39,   672,    51,    26,  1268,  1276,  1280,  1284,    13,
  1328.   1287,  1293,   673,  1296,   360,  1303,    14,  1312,  1299,   266,
  1329.   1310,  1311,   531,  1315,   674,   268,  1316,    50,    50,   128,
  1330.   1325,  1327,  1329,  1330,  1337,  1338,    22,   324,   284,   347,
  1331.    360,     4,   126,     6,     7,     8,     9,   117,    26,  1341,
  1332.   1342,    10,   506,    55,   854,   533,   131,    51,    51,   285,
  1333.   -668,   247,  -668,  -668,   286,   164,    13,   304,  -668,   772,
  1334.    860,   706,   281,    14,  -395,   629,    22,   928,  1159,    16,
  1335.   1174,  1203,  1111,   555,    18,  1234,  -668,  -668,   497,  -668,
  1336.   1024,  -668,   552,   348,    72,     6,     7,     8,     9,    19,
  1337.    360,   244,   360,    10,   371,   334,   371,  1211,   957,    20,
  1338.    848,   129,   130,   763,   155,   155,   360,   929,    13,   912,
  1339.    818,    21,   195,    39,  1048,    14,   943,   586,   546,   196,
  1340.     51,   688,   846,    22,   911,    54,    54,   613,   277,   278,
  1341.    279,   325,  1139,   589,  -395,    26,  1302,   360,   466,   360,
  1342.     50,  1304,   944,     0,  1135,    54,     0,     0,   360,     0,
  1343.      0,    51,   360,     0,    54,     4,   143,     0,     0,     0,
  1344.    315,     0,    54,    54,   117,     0,     0,   845,     0,     0,
  1345.      0,     0,     0,     0,   245,    22,     0,     0,   433,   351,
  1346.     51,     0,   247,   653,     0,     0,     4,   115,     0,   247,
  1347.      0,     0,     0,    16,     0,     0,     0,     0,    18,   144,
  1348.    360,   668,   360,     0,     0,   360,   355,     0,   866,     0,
  1349.      0,   434,   435,   145,   380,   436,   437,   438,   439,   440,
  1350.    441,     0,     0,   146,    16,   262,     0,     0,     0,    18,
  1351.    147,     0,     0,     0,     0,   148,    54,    54,    54,     0,
  1352.      0,     0,     0,   371,   672,     0,     0,    22,    54,   930,
  1353.    931,    54,    54,     0,   673,     0,   247,   149,     0,    26,
  1354.      0,   266,     0,     0,   247,   714,   674,   268,    54,     0,
  1355.      0,     0,    54,    39,     0,     0,     0,     0,    22,   422,
  1356.    423,   424,   425,   426,   427,   428,   429,   430,   431,   432,
  1357.     26,   746,     0,     0,     0,    54,     0,     0,     0,   531,
  1358.     50,   958,     0,     0,     0,     0,     0,     0,     0,   360,
  1359.    531,     0,     0,     0,    54,     0,     0,   360,     0,   247,
  1360.      0,     0,    54,     0,     0,   531,   531,   936,   937,     0,
  1361.      0,     0,   278,   279,     0,     4,   115,   117,     0,   401,
  1362.      0,     0,   351,     4,   143,     0,   360,     0,   380,   531,
  1363.    531,   799,     0,   803,     0,     0,     0,     0,     0,     0,
  1364.    454,  1001,     0,     0,     0,    16,   454,   815,     0,   355,
  1365.     18,   144,     0,    16,     0,    51,    51,     0,    18,   938,
  1366.      0,    16,     0,     0,     0,   145,    18,   144,     0,     0,
  1367.      0,   155,     0,   318,     0,   146,   113,   114,   822,     0,
  1368.    823,   145,   147,   319,     0,     0,     0,   148,    54,   833,
  1369.    320,   146,     0,   837,     0,   321,     0,     0,   147,    22,
  1370.   1062,     0,     0,   148,     0,     0,     0,    22,     0,   531,
  1371.      0,    26,     0,     0,     0,    22,   201,     0,     0,    26,
  1372.     54,    54,     0,     0,     0,    54,     0,    26,     0,     0,
  1373.      0,    54,     0,     0,     0,     0,    54,     0,   247,     4,
  1374.    378,   861,     0,   862,     0,     0,   865,   531,     0,  1099,
  1375.      0,     0,     0,     0,    54,    54,     0,    54,     0,   371,
  1376.      0,   676,   676,   247,     0,   676,   347,     0,     4,   126,
  1377.      6,     7,     8,     9,     0,     0,     0,    16,    10,     0,
  1378.      0,     0,    18,     0,     0,     0,     4,   143,     0,     0,
  1379.      0,     0,     0,    13,     0,     0,     0,   559,     0,     0,
  1380.     14,  -394,   316,   317,     0,     0,    16,   560,   397,    72,
  1381.      6,    18,     8,     0,   531,     0,     0,   247,    10,    21,
  1382.    348,     0,  1149,  1150,    16,     0,    19,     0,     0,    18,
  1383.    144,   379,     0,    13,     0,     0,    20,     0,   278,   279,
  1384.     14,   531,   211,    26,   145,     0,    16,   247,    21,   356,
  1385.    964,   398,     0,   247,   146,     0,   381,   454,   970,     0,
  1386.     22,   147,   531,     0,     0,     0,   148,     0,     0,    54,
  1387.     54,  -394,    26,    54,   117,     0,  1185,   247,    22,   247,
  1388.    117,     0,     0,   360,     0,     0,   360,   983,  1022,     0,
  1389.     26,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1390.     22,     0,     0,     0,     0,     0,     0,     0,   531,     0,
  1391.    531,     0,     0,     0,     0,     0,     0,     0,     0,   482,
  1392.      0,   484,   485,     0,     0,   360,   531,     0,     0,     0,
  1393.      0,   531,   423,   424,   425,   426,   427,   428,   429,   430,
  1394.    431,   432,     0,   247,     0,     0,    54,    54,     0,     0,
  1395.      0,     0,     0,    71,     0,     0,    72,     6,     0,     8,
  1396.     73,     0,     0,     0,     0,    10,     0,   838,     0,     0,
  1397.    117,   247,     0,     0,     0,   542,   543,     0,     0,     0,
  1398.     13,     0,    54,     0,     0,     0,   553,    14,    54,    74,
  1399.     75,     0,     0,     0,    76,     0,     0,     0,     0,     0,
  1400.      0,     0,   531,    77,    78,    79,    80,     0,     0,    81,
  1401.     82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
  1402.     92,    93,    94,    95,    96,    97,     0,    98,    99,     0,
  1403.      0,   100,   101,     0,     0,     0,   102,   278,   279,     0,
  1404.      0,     0,     0,     0,     0,     0,     0,    22,     4,   115,
  1405.      0,   278,   279,     0,   351,     0,     0,     0,     0,   103,
  1406.    104,     4,   378,     0,     0,     0,    -2,     3,     0,     4,
  1407.      5,     6,     7,     8,     9,    54,     0,     0,    54,    10,
  1408.      0,   355,     0,     0,     0,     0,    16,     0,   531,     0,
  1409.      0,    18,    11,    12,    13,     0,     0,     0,     0,    16,
  1410.      0,    14,     0,     0,    18,    15,   544,    16,     0,    17,
  1411.      0,     0,    18,     0,     0,     0,   545,     0,     0,  1093,
  1412.      0,     0,     0,   320,   679,     0,     0,    19,   321,  1094,
  1413.      0,     0,     0,     0,     0,   278,   279,    20,     0,     0,
  1414.     22,    21,     0,     0,  1189,    54,    54,  1192,     0,    21,
  1415.    698,     0,    26,   379,     0,     0,     0,     0,     0,    54,
  1416.     54,    22,    23,    24,     0,    26,     0,     0,     0,     0,
  1417.      0,    25,     0,    26,     0,     0,     0,     0,     0,    54,
  1418.      0,   351,     0,     0,     0,     0,  1215,     0,     0,    54,
  1419.      0,     0,     0,  1028,     0,     0,     0,     0,     0,     0,
  1420.      0,   741,   742,     0,   744,     0,     0,     0,   355,     0,
  1421.      0,     0,   351,     0,     0,     0,   755,   756,   418,   419,
  1422.    420,   421,   422,   423,   424,   425,   426,   427,   428,   429,
  1423.    430,   431,   432,   771,     0,     0,     0,     0,     0,   355,
  1424.    779,     0,     0,    54,    54,     0,     0,     0,     0,   788,
  1425.    789,   790,   421,   422,   423,   424,   425,   426,   427,   428,
  1426.    429,   430,   431,   432,   797,     0,   801,     0,   380,   805,
  1427.      0,     0,     0,     0,     0,   357,     0,   202,   126,     6,
  1428.      7,     8,   358,   204,   205,   244,   206,    10,     0,     0,
  1429.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1430.     54,    54,    13,   207,   208,   209,     0,   210,     0,    14,
  1431.      0,   211,  -261,     0,   212,    16,    54,     0,   213,   214,
  1432.    215,     0,     0,     0,     0,     0,     0,     0,     0,   839,
  1433.    840,     0,   216,     0,     0,   217,     0,     0,     0,     0,
  1434.      0,     0,     0,   218,   219,   220,     0,    54,     0,   221,
  1435.    222,     0,     0,   851,     0,     0,     0,   223,     0,     0,
  1436.      0,     0,     0,     0,     0,     0,     0,     0,   245,    22,
  1437.      0,     0,     0,     0,     0,     0,    54,     0,  -646,     0,
  1438.      0,   224,   225,     0,     0,   413,   414,   415,     0,     0,
  1439.    416,   417,   418,   419,   420,   421,   422,   423,   424,   425,
  1440.    426,   427,   428,   429,   430,   431,   432,     0,   922,   923,
  1441.    924,  1034,     0,  -602,  -602,  -602,  -602,  -602,  -602,  -602,
  1442.   -602,     0,  -602,  -602,  -602,  -602,  -602,  -602,  -602,  -602,
  1443.   -602,  -602,  -602,  -602,  -602,  -602,  -602,  -602,  -602,  -602,
  1444.   -602,  -602,   985,  -602,     0,  -602,     0,  -602,  -602,     0,
  1445.   -602,  -602,     0,     0,  -602,  -602,  -602,     0,     0,  -602,
  1446.   -602,     0,     0,   278,   279,     0,     0,     0,  -602,     0,
  1447.      0,  -602,     0,     0,     0,     0,     0,     0,     0,  -602,
  1448.   -602,  -602,     0,     0,     0,  -602,  -602,     0,     0,     0,
  1449.      0,     0,     0,  -602,     0,  -602,     0,  1035,  -602,  1036,
  1450.      0,  -602,  -602,  -602,     0,  -602,   976,   977,     0,   978,
  1451.     72,     6,     0,     8,   273,  -602,  -602,  -602,  -602,    10,
  1452.    419,   420,   421,   422,   423,   424,   425,   426,   427,   428,
  1453.    429,   430,   431,   432,    13,     0,     0,     0,     0,     0,
  1454.      0,    14,     0,     0,     0,     0,     0,     0,   262,     0,
  1455.      0,     0,     0,   263,   420,   421,   422,   423,   424,   425,
  1456.    426,   427,   428,   429,   430,   431,   432,   264,     0,     0,
  1457.      0,    54,    54,     0,  1049,  1050,  1051,   265,     0,     0,
  1458.      0,     0,     0,     0,   266,     0,     0,    54,     0,   267,
  1459.    268,  1058,     0,     0,     0,     0,     0,     0,     0,  1066,
  1460.      0,    22,     0,     0,     0,  1072,  1073,  1074,  1075,  1076,
  1461.   1077,  1029,     0,   873,   126,     6,     7,     8,   358,   204,
  1462.    205,     0,   206,    10,   874,     0,   875,   876,   877,   878,
  1463.    879,   880,   881,   882,   883,   884,    11,    12,    13,   207,
  1464.    208,   209,     0,   210,     0,    14,     0,   211,  -261,     0,
  1465.    212,    16,     0,     0,   213,   214,   215,     0,     0,   885,
  1466.    307,     0,     0,     0,     0,     0,     0,     0,   216,     0,
  1467.      0,   217,     0,     0,     0,     0,     0,     0,     0,   218,
  1468.    219,   220,     0,     0,     0,   221,   222,     0,     0,     0,
  1469.      0,     0,     0,   223,     0,   886,     0,     0,   887,   605,
  1470.      0,   888,   889,   890,     0,   891,     0,     0,     0,     0,
  1471.      0,     0,     0,     0,     0,   892,  1030,   224,   225,   413,
  1472.    414,   415,     0,     0,   416,   417,   418,   419,   420,   421,
  1473.    422,   423,   424,   425,   426,   427,   428,   429,   430,   431,
  1474.    432,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1475.   1167,  1168,  1039,     0,   873,   126,     6,     7,     8,   358,
  1476.    204,   205,     0,   206,    10,   874,     0,   875,   876,   877,
  1477.    878,   879,   880,   881,   882,   883,   884,    11,    12,    13,
  1478.    207,   208,   209,     0,   210,     0,    14,     0,   211,  -261,
  1479.      0,   212,    16,     0,     0,   213,   214,   215,     0,     0,
  1480.    885,   307,     0,     0,     0,     0,     0,     0,     0,   216,
  1481.      0,     0,   217,     0,     0,     0,     0,     0,     0,     0,
  1482.    218,   219,   220,     0,     0,     0,   221,   222,     0,     0,
  1483.      0,     0,     0,     0,   223,     0,   886,     0,     0,   887,
  1484.      0,     0,   888,   889,   890,     0,   891,     0,     0,     0,
  1485.      0,     0,     0,     0,     0,     0,   892,  1040,   224,   225,
  1486.   1043,     0,   873,   126,     6,     7,     8,   358,   204,   205,
  1487.      0,   206,    10,   874,     0,   875,   876,   877,   878,   879,
  1488.    880,   881,   882,   883,   884,    11,    12,    13,   207,   208,
  1489.    209,     0,   210,     0,    14,     0,   211,  -261,     0,   212,
  1490.     16,     0,     0,   213,   214,   215,     0,     0,   885,   307,
  1491.      0,     0,     0,     0,     0,     0,     0,   216,     0,     0,
  1492.    217,     0,     0,     0,     0,     0,     0,     0,   218,   219,
  1493.    220,     0,     0,     0,   221,   222,     0,     0,     0,     0,
  1494.      0,     0,   223,     0,   886,     0,     0,   887,     0,     0,
  1495.    888,   889,   890,     0,   891,     0,     0,     0,     0,     0,
  1496.      0,     0,     0,     0,   892,  1044,   224,   225,  1029,     0,
  1497.    873,   126,     6,     7,     8,   358,   204,   205,     0,   206,
  1498.     10,   874,     0,   875,   876,   877,   878,   879,   880,   881,
  1499.    882,   883,   884,    11,    12,    13,   207,   208,   209,     0,
  1500.    210,     0,    14,     0,   211,  -261,     0,   212,    16,     0,
  1501.      0,   213,   214,   215,     0,     0,   885,   307,     0,     0,
  1502.      0,     0,     0,     0,     0,   216,     0,     0,   217,     0,
  1503.      0,     0,     0,     0,     0,     0,   218,   219,   220,     0,
  1504.      0,     0,   221,   222,     0,     0,     0,     0,     0,     0,
  1505.    223,     0,   886,     0,     0,   887,     0,     0,   888,   889,
  1506.    890,     0,   891,     0,     0,     0,     0,     0,     0,     0,
  1507.      0,     0,   892,  1138,   224,   225,  1029,     0,   873,   126,
  1508.      6,     7,     8,   358,   204,   205,     0,   206,    10,   874,
  1509.      0,   875,   876,   877,   878,   879,   880,   881,   882,   883,
  1510.    884,    11,    12,    13,   207,   208,   209,     0,   210,     0,
  1511.     14,     0,   211,  -261,     0,   212,    16,     0,     0,   213,
  1512.    214,   215,     0,     0,   885,   307,     0,     0,     0,     0,
  1513.      0,     0,     0,   216,     0,     0,   217,     0,     0,     0,
  1514.      0,     0,     0,     0,   218,   219,   220,     0,     0,     0,
  1515.    221,   222,     0,     0,     0,     0,     0,     0,   223,     0,
  1516.    886,     0,     0,   887,     0,     0,   888,   889,   890,     0,
  1517.    891,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1518.    892,  1141,   224,   225,  1029,     0,   873,   126,     6,     7,
  1519.      8,   358,   204,   205,     0,   206,    10,   874,     0,   875,
  1520.    876,   877,   878,   879,   880,   881,   882,   883,   884,    11,
  1521.     12,    13,   207,   208,   209,     0,   210,     0,    14,     0,
  1522.    211,  -261,     0,   212,    16,     0,     0,   213,   214,   215,
  1523.      0,     0,   885,   307,     0,     0,     0,     0,     0,     0,
  1524.      0,   216,     0,     0,   217,     0,     0,     0,     0,     0,
  1525.      0,     0,   218,   219,   220,     0,     0,     0,   221,   222,
  1526.      0,     0,     0,     0,     0,     0,   223,     0,   886,     0,
  1527.      0,   887,     0,     0,   888,   889,   890,     0,   891,     0,
  1528.      0,     0,     0,     0,     0,     0,     0,     0,   892,  1258,
  1529.    224,   225,  1029,     0,   873,   126,     6,     7,     8,   358,
  1530.    204,   205,     0,   206,    10,   874,     0,   875,   876,   877,
  1531.    878,   879,   880,   881,   882,   883,   884,    11,    12,    13,
  1532.    207,   208,   209,     0,   210,     0,    14,     0,   211,  -261,
  1533.      0,   212,    16,     0,     0,   213,   214,   215,     0,     0,
  1534.    885,   307,     0,     0,     0,     0,     0,     0,     0,   216,
  1535.      0,     0,   217,     0,     0,     0,     0,     0,     0,     0,
  1536.    218,   219,   220,     0,     0,     0,   221,   222,     0,     0,
  1537.      0,     0,     0,     0,   223,     0,   886,     0,     0,   887,
  1538.      0,     0,   888,   889,   890,     0,   891,     0,     0,     0,
  1539.      0,     0,     0,     0,     0,     0,   892,  1306,   224,   225,
  1540.   1029,     0,   873,   126,     6,     7,     8,   358,   204,   205,
  1541.      0,   206,    10,   874,     0,   875,   876,   877,   878,   879,
  1542.    880,   881,   882,   883,   884,    11,    12,    13,   207,   208,
  1543.    209,     0,   210,     0,    14,     0,   211,  -261,     0,   212,
  1544.     16,     0,     0,   213,   214,   215,     0,     0,   885,   307,
  1545.      0,     0,     0,     0,     0,     0,     0,   216,     0,     0,
  1546.    217,     0,     0,     0,     0,     0,     0,     0,   218,   219,
  1547.    220,     0,     0,     0,   221,   222,     0,     0,     0,     0,
  1548.      0,     0,   223,     0,   886,     0,     0,   887,     0,     0,
  1549.    888,   889,   890,     0,   891,     0,     0,     0,     0,     0,
  1550.      0,     0,     0,     0,   892,  1314,   224,   225,   872,     0,
  1551.    873,   126,     6,     7,     8,   358,   204,   205,     0,   206,
  1552.     10,   874,     0,   875,   876,   877,   878,   879,   880,   881,
  1553.    882,   883,   884,    11,    12,    13,   207,   208,   209,     0,
  1554.    210,     0,    14,     0,   211,  -261,     0,   212,    16,     0,
  1555.      0,   213,   214,   215,     0,     0,   885,   307,     0,     0,
  1556.      0,     0,     0,     0,     0,   216,     0,     0,   217,     0,
  1557.      0,     0,     0,     0,     0,     0,   218,   219,   220,     0,
  1558.      0,     0,   221,   222,     0,     0,     0,     0,     0,     0,
  1559.    223,     0,   886,     0,     0,   887,     0,     0,   888,   889,
  1560.    890,     0,   891,     0,     0,     0,     0,     0,     0,     0,
  1561.      0,     0,   892,     0,   224,   225,  1224,     0,   873,   126,
  1562.      6,     7,     8,   358,   204,   205,     0,   206,    10,   874,
  1563.      0,   875,   876,   877,   878,   879,   880,   881,   882,   883,
  1564.    884,    11,    12,    13,   207,   208,   209,     0,   210,     0,
  1565.     14,     0,   211,  -261,     0,   212,    16,     0,     0,   213,
  1566.    214,   215,     0,     0,   885,   307,     0,     0,     0,     0,
  1567.      0,     0,     0,   216,     0,     0,   217,     0,     0,     0,
  1568.      0,     0,     0,     0,   218,   219,   220,     0,     0,     0,
  1569.    221,   222,     0,     0,     0,     0,     0,     0,   223,     0,
  1570.    886,     0,     0,   887,     0,     0,   888,   889,   890,     0,
  1571.    891,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1572.    892,     0,   224,   225,  1288,     0,   873,   126,     6,     7,
  1573.      8,   358,   204,   205,     0,   206,    10,   874,     0,   875,
  1574.    876,   877,   878,   879,   880,   881,   882,   883,   884,    11,
  1575.     12,    13,   207,   208,   209,     0,   210,     0,    14,     0,
  1576.    211,  -261,     0,   212,    16,     0,     0,   213,   214,   215,
  1577.      0,     0,   885,   307,     0,     0,     0,     0,     0,     0,
  1578.      0,   216,     0,     0,   217,     0,     0,     0,     0,     0,
  1579.      0,     0,   218,   219,   220,     0,     0,     0,   221,   222,
  1580.      0,     0,     0,     0,     0,     0,   223,     0,   886,     0,
  1581.      0,   887,     0,     0,   888,   889,   890,     0,   891,     0,
  1582.      0,     0,     0,     0,     0,     0,     0,     0,   892,     0,
  1583.    224,   225,  1297,     0,   873,   126,     6,     7,     8,   358,
  1584.    204,   205,     0,   206,    10,   874,     0,   875,   876,   877,
  1585.    878,   879,   880,   881,   882,   883,   884,    11,    12,    13,
  1586.    207,   208,   209,     0,   210,     0,    14,     0,   211,  -261,
  1587.      0,   212,    16,     0,     0,   213,   214,   215,     0,     0,
  1588.    885,   307,     0,     0,     0,     0,     0,     0,     0,   216,
  1589.      0,     0,   217,     0,     0,     0,     0,     0,     0,     0,
  1590.    218,   219,   220,     0,     0,     0,   221,   222,     0,     0,
  1591.      0,     0,     0,     0,   223,     0,   886,     0,     0,   887,
  1592.      0,     0,   888,   889,   890,     0,   891,     0,     0,     0,
  1593.      0,     0,     0,     0,     0,     0,   892,     0,   224,   225,
  1594.    554,     0,   202,   126,     6,     7,     8,   358,   204,   205,
  1595.    244,   206,    10,     0,     0,     0,     0,     0,     0,     0,
  1596.      0,     0,     0,     0,     0,     0,     0,    13,   207,   208,
  1597.    209,     0,   210,     0,    14,     0,   211,  -261,     0,   212,
  1598.     16,     0,     0,   213,   214,   215,     0,     0,     0,     0,
  1599.      0,     0,     0,     0,     0,     0,     0,   216,     0,     0,
  1600.    217,     0,     0,     0,     0,     0,     0,     0,   218,   219,
  1601.    220,     0,     0,     0,   221,   222,     0,     0,     0,     0,
  1602.      0,     0,   223,     0,     0,     0,     0,     0,     0,     0,
  1603.      0,     0,     0,   245,    22,     0,     0,     0,     0,     0,
  1604.      0,     0,     0,  -646,     0,     0,   224,   225,   745,     0,
  1605.    202,   126,     6,     7,     8,   358,   204,   205,   244,   206,
  1606.     10,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1607.      0,     0,     0,     0,     0,    13,   207,   208,   209,     0,
  1608.    210,     0,    14,     0,   211,  -261,     0,   212,    16,     0,
  1609.      0,   213,   214,   215,     0,     0,     0,     0,     0,     0,
  1610.      0,     0,     0,     0,     0,   216,     0,     0,   217,     0,
  1611.      0,     0,     0,     0,     0,     0,   218,   219,   220,     0,
  1612.      0,     0,   221,   222,     0,     0,     0,     0,     0,     0,
  1613.    223,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1614.      0,   245,    22,     0,     0,     0,     0,     0,     0,     0,
  1615.      0,  -646,     0,     0,   224,   225,   798,     0,   202,   126,
  1616.      6,     7,     8,   358,   204,   205,   244,   206,    10,     0,
  1617.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1618.      0,     0,     0,    13,   207,   208,   209,     0,   210,     0,
  1619.     14,     0,   211,  -261,     0,   212,    16,     0,     0,   213,
  1620.    214,   215,     0,     0,     0,     0,     0,     0,     0,     0,
  1621.      0,     0,     0,   216,     0,     0,   217,     0,     0,     0,
  1622.      0,     0,     0,     0,   218,   219,   220,     0,     0,     0,
  1623.    221,   222,     0,     0,     0,     0,     0,     0,   223,     0,
  1624.      0,     0,     0,     0,     0,     0,     0,     0,     0,   245,
  1625.     22,     0,     0,     0,     0,     0,     0,     0,     0,  -646,
  1626.      0,     0,   224,   225,   802,     0,   202,   126,     6,     7,
  1627.      8,   358,   204,   205,   244,   206,    10,     0,     0,     0,
  1628.      0,     0,     0,   347,     0,     4,   126,     6,     7,     8,
  1629.      9,    13,   207,   208,   209,    10,   210,     0,    14,     0,
  1630.    211,  -261,     0,   212,    16,     0,     0,   213,   214,   215,
  1631.     13,     0,     0,     0,     0,     0,     0,    14,  -396,     0,
  1632.      0,   216,     0,    16,   217,     0,     0,     0,    18,     0,
  1633.      0,     0,   218,   219,   220,     0,     0,   348,   221,   222,
  1634.      0,     0,     0,    19,     0,     0,   223,     0,     0,     0,
  1635.      0,     0,     0,    20,     0,     0,     0,   245,    22,     0,
  1636.      0,     0,     0,     0,     0,    21,     0,  -646,     0,     0,
  1637.    224,   225,   529,     0,   724,   725,     6,    22,     8,   385,
  1638.    204,   205,     0,   206,    10,     0,     0,   589,  -396,    26,
  1639.      0,     0,     0,     0,     0,     0,     0,     0,     0,    13,
  1640.    207,   208,   209,     0,   210,     0,    14,     0,   211,  -261,
  1641.      0,   212,    16,     0,     0,   213,   214,   215,     0,     0,
  1642.      0,   530,     0,     0,     0,     0,     0,     0,     0,   216,
  1643.      0,     0,   217,     0,     0,     0,     0,     0,     0,     0,
  1644.    218,   219,   220,     0,     0,     0,   221,   222,     0,     0,
  1645.      0,     0,     0,     0,   223,   726,   529,     0,   724,   725,
  1646.      6,     0,     8,   385,   204,   205,   180,   206,    10,     0,
  1647.      0,     0,     0,     0,     0,   987,     0,   727,   224,   225,
  1648.      0,     0,     0,    13,   207,   208,   209,     0,   210,     0,
  1649.     14,     0,   211,  -261,     0,   212,    16,     0,     0,   213,
  1650.    214,   215,     0,     0,     0,   530,     0,     0,     0,     0,
  1651.      0,     0,     0,   216,     0,     0,   217,     0,     0,     0,
  1652.      0,     0,     0,     0,   218,   219,   220,     0,     0,     0,
  1653.    221,   222,     0,     0,     0,     0,     0,  1107,   223,   202,
  1654.    126,     6,     7,     8,   358,   204,   205,     0,   206,    10,
  1655.    180,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1656.      0,   988,   224,   225,    13,   207,   208,   209,     0,   210,
  1657.      0,    14,     0,   211,  -261,     0,   212,    16,     0,     0,
  1658.    213,   214,   215,     0,     0,     0,  1108,     0,     0,     0,
  1659.      0,     0,     0,     0,   216,     0,     0,   217,     0,     0,
  1660.      0,     0,     0,     0,     0,   218,   219,   220,     0,     0,
  1661.      0,   221,   222,     0,     0,     0,     0,     0,   529,   223,
  1662.    724,   725,     6,     0,     8,   385,   204,   205,     0,   206,
  1663.     10,    22,     0,     0,     0,     0,     0,   987,     0,     0,
  1664.      0,  1109,     0,   224,   225,    13,   207,   208,   209,     0,
  1665.    210,     0,    14,     0,   211,  -261,     0,   212,    16,     0,
  1666.      0,   213,   214,   215,     0,     0,     0,   530,     0,     0,
  1667.      0,     0,     0,     0,     0,   216,     0,     0,   217,     0,
  1668.      0,     0,     0,     0,     0,     0,   218,   219,   220,     0,
  1669.      0,     0,   221,   222,     0,     0,     0,     0,     0,   529,
  1670.    223,   724,   725,     6,     0,     8,   385,   204,   205,     0,
  1671.    206,    10,   180,     0,     0,     0,     0,     0,     0,     0,
  1672.      0,     0,     0,  -356,   224,   225,    13,   207,   208,   209,
  1673.      0,   210,     0,    14,     0,   211,  -261,     0,   212,    16,
  1674.      0,     0,   213,   214,   215,     0,     0,     0,   530,     0,
  1675.      0,     0,     0,     0,     0,     0,   216,     0,     0,   217,
  1676.      0,     0,     0,     0,     0,     0,     0,   218,   219,   220,
  1677.      0,     0,     0,   221,   222,     0,     0,     0,     0,     0,
  1678.      0,   223,   726,   405,     0,   202,   126,     6,     0,     8,
  1679.    203,   204,   205,   180,   206,    10,     0,     0,     0,     0,
  1680.      0,     0,     0,     0,     0,   224,   225,     0,     0,     0,
  1681.     13,   207,   208,   209,     0,   210,     0,    14,     0,   211,
  1682.   -261,     0,   212,    16,     0,     0,   213,   214,   215,     0,
  1683.      0,     0,  -229,     0,     0,     0,     0,     0,     0,     0,
  1684.    216,     0,     0,   217,     0,     0,     0,     0,     0,     0,
  1685.      0,   218,   219,   220,     0,     0,     0,   221,   222,     0,
  1686.      0,     0,     0,     0,   529,   223,   202,   126,     6,     0,
  1687.      8,   385,   204,   205,     0,   206,    10,    22,     0,     0,
  1688.      0,     0,     0,     0,     0,     0,     0,     0,     0,   224,
  1689.    225,    13,   207,   208,   209,     0,   210,     0,    14,     0,
  1690.    211,  -261,     0,   212,    16,     0,     0,   213,   214,   215,
  1691.      0,     0,     0,   530,     0,     0,     0,     0,     0,     0,
  1692.      0,   216,     0,     0,   217,     0,     0,     0,     0,     0,
  1693.      0,     0,   218,   219,   220,     0,     0,     0,   221,   222,
  1694.      0,     0,     0,     0,     0,   632,   223,   202,   126,     6,
  1695.      0,     8,   385,   204,   205,     0,   206,    10,    22,     0,
  1696.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1697.    224,   225,    13,   207,   208,   209,     0,   210,     0,    14,
  1698.      0,   211,  -261,     0,   212,    16,     0,     0,   213,   214,
  1699.    215,     0,     0,     0,     0,     0,     0,     0,     0,  -636,
  1700.      0,     0,   216,     0,     0,   217,     0,     0,     0,     0,
  1701.      0,     0,     0,   218,   219,   220,     0,     0,     0,   221,
  1702.    222,     0,     0,     0,     0,     0,  1200,   223,   202,   126,
  1703.      6,     0,     8,   203,   204,   205,     0,   206,    10,    22,
  1704.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1705.      0,   224,   225,    13,   207,   208,   209,     0,   210,     0,
  1706.     14,     0,   211,  -261,     0,   212,    16,     0,     0,   213,
  1707.    214,   215,     0,     0,     0,     0,     0,     0,     0,     0,
  1708.      0,     0,     0,   216,     0,     0,   217,     0,     0,     0,
  1709.      0,     0,     0,     0,   218,   219,   220,     0,     0,     0,
  1710.    221,   222,     0,     0,     0,     0,     0,   632,   223,   202,
  1711.    126,     6,     0,     8,   385,   204,   205,     0,   206,    10,
  1712.     22,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1713.   -144,     0,   224,   225,    13,   207,   208,   209,     0,   210,
  1714.      0,    14,     0,   211,  -261,     0,   212,    16,     0,     0,
  1715.    213,   214,   215,     0,     0,     0,     0,     0,     0,     0,
  1716.      0,     0,     0,     0,   216,     0,     0,   217,     0,     0,
  1717.      0,     0,     0,     0,     0,   218,   219,   220,     0,     0,
  1718.      0,   221,   222,     0,     0,     0,     0,     0,   689,   223,
  1719.    202,   126,     6,     0,     8,   385,   204,   205,     0,   206,
  1720.     10,    22,     0,     0,     0,     0,     0,     0,     0,     0,
  1721.   -636,     0,     0,   224,   225,    13,   207,   208,   209,     0,
  1722.    210,     0,    14,     0,   211,  -261,     0,   212,    16,     0,
  1723.      0,   213,   214,   215,     0,     0,     0,     0,     0,     0,
  1724.      0,     0,     0,     0,     0,   216,     0,     0,   217,     0,
  1725.      0,     0,     0,     0,     0,     0,   218,   219,   220,     0,
  1726.      0,     0,   221,   222,     0,     0,     0,     0,     0,     0,
  1727.    223,   202,   126,     6,     0,     8,   385,   204,   205,     0,
  1728.    206,    10,    22,     0,     0,     0,     0,     0,     0,     0,
  1729.      0,     0,     0,     0,   224,   225,    13,   207,   208,   209,
  1730.      0,   210,     0,    14,     0,   211,     0,     0,   212,    16,
  1731.      0,     0,   213,   214,   215,     0,     0,     0,     0,     0,
  1732.      0,     0,     0,     0,     0,     0,   216,     0,     3,   217,
  1733.      4,     5,     6,     7,     8,     9,     0,   218,   219,   220,
  1734.     10,     0,     0,   221,   222,     0,     0,     0,     0,     0,
  1735.      0,   223,     0,    11,    12,    13,     0,     0,     0,     0,
  1736.      0,     0,    14,    22,     0,     0,    15,     0,    16,     0,
  1737.     17,     0,     0,    18,     0,   224,   225,   660,     0,     0,
  1738.      0,     0,     0,     0,     0,     0,     0,     0,    19,     0,
  1739.      0,     0,     0,     0,     0,     0,     0,     0,    20,     0,
  1740.      0,     3,     0,     4,     5,     6,     7,     8,     9,     0,
  1741.     21,     0,     0,    10,     0,     0,     0,     0,     0,     0,
  1742.      0,     0,    22,    23,    24,     0,    11,    12,    13,     0,
  1743.      0,     0,    25,   504,    26,    14,     0,     0,     0,    15,
  1744.      0,    16,     0,    17,     0,     0,    18,   413,   414,   415,
  1745.      0,     0,   416,   417,   418,   419,   420,   421,   422,   423,
  1746.    424,    19,   426,   427,   428,   429,   430,   431,   432,     0,
  1747.      0,    20,     0,     0,   347,     0,     4,   126,     6,     7,
  1748.      8,     9,     0,    21,     0,     0,    10,     0,     0,     0,
  1749.      0,     0,     0,     0,     0,    22,    23,    24,     0,     0,
  1750.      0,    13,     0,     0,     0,    25,     0,    26,    14,  -397,
  1751.      0,     0,     0,     0,    16,     0,     0,     0,     3,    18,
  1752.      4,     5,     6,     7,     8,     9,     0,     0,   348,     0,
  1753.     10,     0,     0,     0,    19,     0,     0,     0,     0,     0,
  1754.      0,     0,     0,     0,    20,    13,     0,     0,     0,     0,
  1755.      0,     0,    14,     0,     0,     0,    21,     0,    16,     0,
  1756.      0,     0,     0,    18,     0,     0,     0,     0,    22,   125,
  1757.      0,     4,   126,     6,     7,     8,     9,     0,    19,  -397,
  1758.     26,    10,     0,     0,     0,     0,     0,     0,    20,     0,
  1759.      0,     0,     0,     0,     0,     0,    13,     0,     0,     0,
  1760.     21,     0,     0,    14,     0,     0,     0,     0,     0,    16,
  1761.      0,     0,    22,    23,    18,     0,     0,     0,     0,     0,
  1762.      0,     0,    25,     0,    26,     0,     0,     0,     0,    19,
  1763.      0,     0,     0,     0,     0,     0,     0,     0,     0,    20,
  1764.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1765.      0,    21,     0,     0,     0,     0,     0,     0,     0,     0,
  1766.      0,     0,     0,    22,     0,     0,     0,   873,   126,     6,
  1767.      7,     8,   358,   204,   205,    26,   206,    10,   874,     0,
  1768.    875,   876,   877,   878,   879,   880,   881,   882,   883,   884,
  1769.     11,    12,    13,   207,   208,   209,     0,   210,     0,    14,
  1770.      0,   211,     0,     0,   212,    16,     0,     0,   213,   214,
  1771.    215,     0,     0,   885,   307,     0,     0,     0,     0,     0,
  1772.      0,     0,   216,     0,     0,   217,     0,     0,     0,     0,
  1773.      0,     0,     0,   218,   219,   220,     0,     0,     0,   221,
  1774.    222,     0,     0,     0,     0,     0,     0,   223,     0,   886,
  1775.      0,     0,   887,     0,     0,   888,   889,   890,     0,   891,
  1776.      0,     0,     0,     0,     0,     0,     0,     0,     0,   892,
  1777.   1037,   224,   225,   873,   126,     6,     7,     8,   358,   204,
  1778.    205,     0,   206,    10,   874,     0,   875,   876,   877,   878,
  1779.    879,   880,   881,   882,   883,   884,    11,    12,    13,   207,
  1780.    208,   209,     0,   210,     0,    14,     0,   211,     0,     0,
  1781.    212,    16,     0,     0,   213,   214,   215,     0,     0,   885,
  1782.    307,     0,     0,     0,     0,     0,     0,     0,   216,     0,
  1783.      0,   217,     0,     0,     0,     0,     0,     0,     0,   218,
  1784.    219,   220,     0,     0,     0,   221,   222,     0,     0,     0,
  1785.      0,     0,     0,   223,     0,   886,     0,     0,   887,     0,
  1786.      0,   888,   889,   890,     0,   891,     0,     0,     0,     0,
  1787.      0,     0,     0,     0,     0,   892,     0,   224,   225,   873,
  1788.    126,     6,     7,     8,   358,   204,   205,     0,   206,    10,
  1789.    874,     0,   875,   876,   877,   878,   879,   880,   881,   882,
  1790.    883,   884,    11,    12,    13,   207,   208,   209,     0,   210,
  1791.      0,    14,     0,   211,     0,     0,   212,    16,     0,     0,
  1792.    213,   214,   215,     0,     0,   885,  1251,     0,     0,     0,
  1793.      0,     0,     0,     0,   216,     0,     0,   217,     0,     0,
  1794.      0,     0,     0,     0,     0,   218,   219,   220,     0,     0,
  1795.      0,   221,   222,     0,     0,     0,     0,     0,     0,   223,
  1796.      0,   886,     0,     0,   887,     0,     0,   888,   889,   890,
  1797.      0,   891,     0,     0,     0,     0,     0,     0,     0,     0,
  1798.      0,   892,     0,   224,   225,   873,   126,     6,     7,     8,
  1799.    358,   204,   205,     0,   206,    10,   874,     0,   875,   876,
  1800.    877,   878,   879,   880,   881,   882,   883,   884,    11,    12,
  1801.     13,   207,   208,   209,     0,   210,     0,    14,     0,   211,
  1802.      0,     0,   212,    16,     0,     0,   213,   214,   215,     0,
  1803.      0,   885,     0,     0,     0,     0,     0,     0,     0,     0,
  1804.    216,     0,     0,   217,     0,     0,     0,     0,     0,     0,
  1805.      0,   218,   219,   220,     0,     0,     0,   221,   222,     0,
  1806.      0,     0,     0,     0,     0,   223,     0,   886,     0,     0,
  1807.    887,     0,     0,   888,   889,   890,     0,   891,     0,     0,
  1808.      0,     0,     0,     0,     0,     0,     0,   892,     0,   224,
  1809.    225,   202,   126,     6,     0,     8,   385,   204,   205,     0,
  1810.    206,    10,     0,     0,     0,     0,     0,     0,     0,     0,
  1811.      0,     0,     0,     0,     0,     0,    13,   207,   208,   209,
  1812.      0,   210,     0,    14,     0,   211,     0,     0,   212,    16,
  1813.      0,     0,   213,   214,   215,     0,     0,     0,     0,     0,
  1814.      0,     0,     0,     0,     0,     0,   216,     0,     0,   217,
  1815.      0,     0,     0,     0,     0,     0,     0,   218,   219,   220,
  1816.      0,     0,     0,   221,   222,     0,     0,     0,     0,     0,
  1817.      0,   223,   444,     0,     0,   202,   126,     6,     0,     8,
  1818.    385,   204,   205,    22,   206,    10,     0,     0,     0,     0,
  1819.      0,     0,     0,     0,     0,   224,   225,     0,     0,     0,
  1820.     13,   207,   208,   209,     0,   210,     0,    14,     0,   211,
  1821.      0,     0,   212,    16,     0,     0,   213,   214,   215,     0,
  1822.      0,     0,   817,     0,     0,     0,     0,     0,     0,     0,
  1823.    216,     0,     0,   217,     0,     0,     0,     0,     0,     0,
  1824.      0,   218,   219,   220,     0,     0,     0,   221,   222,     0,
  1825.      0,     0,     0,     0,     0,   223,   202,   126,     6,     0,
  1826.      8,   385,   204,   205,     0,   206,    10,    22,     0,     0,
  1827.      0,     0,     0,     0,     0,     0,     0,     0,     0,   224,
  1828.    225,    13,   207,   208,   209,     0,   210,     0,    14,     0,
  1829.    211,     0,     0,   212,    16,     0,     0,   213,   214,   215,
  1830.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1831.      0,   216,     0,     0,   217,     0,     0,     0,     0,     0,
  1832.      0,     0,   218,   219,   220,     0,     0,     0,   221,   222,
  1833.      0,     0,     0,     0,     0,     0,   223,   202,   126,     6,
  1834.      0,     8,   385,   204,   205,     0,   206,    10,    22,     0,
  1835.      0,     0,     0,     0,     0,     0,     0,     0,  1005,     0,
  1836.    224,   225,    13,   207,   208,   209,     0,   210,     0,    14,
  1837.      0,   211,     0,     0,   212,    16,     0,     0,   213,   214,
  1838.    215,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1839.      0,     0,   216,     0,     0,   217,     0,     0,     0,     0,
  1840.      0,     0,     0,   218,   219,   220,     0,     0,     0,   221,
  1841.    222,     0,     0,     0,     0,     0,     0,   223,   202,   126,
  1842.      6,     0,     8,   203,   204,   205,     0,   206,    10,    22,
  1843.      0,     0,     0,     0,     0,     0,     0,     0,     0,  1016,
  1844.      0,   224,   225,    13,   207,   208,   209,     0,   210,     0,
  1845.     14,     0,   211,     0,     0,   212,    16,     0,     0,   213,
  1846.    214,   215,     0,     0,     0,     0,     0,     0,     0,     0,
  1847.      0,     0,     0,   216,     0,     0,   217,     0,     0,     0,
  1848.      0,     0,     0,     0,   218,   219,   220,     0,     0,     0,
  1849.    221,   222,     0,     0,     0,     0,     0,     0,   223,   202,
  1850.    126,     6,     0,     8,   385,   204,   205,     0,   206,    10,
  1851.     22,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1852.      0,     0,   224,   225,    13,   207,   208,   209,     0,   210,
  1853.      0,    14,     0,   211,     0,     0,   212,    16,     0,     0,
  1854.    213,   214,   215,     0,     0,     0,     0,     0,     0,     0,
  1855.      0,     0,     0,     0,   216,     0,     0,   217,     0,     0,
  1856.      0,     0,     0,     0,     0,   218,   219,   220,     0,     0,
  1857.      0,   221,   222,     0,     0,     0,     0,     0,     0,   223,
  1858.    202,   617,     6,     0,     8,   385,   204,   205,     0,   206,
  1859.     10,    22,     0,     0,     0,     0,     0,     0,     0,     0,
  1860.      0,     0,     0,   224,   225,    13,   207,   208,   209,     0,
  1861.    210,     0,    14,     0,   211,     0,     0,   212,    16,     0,
  1862.      0,   213,   214,   215,   202,   126,     6,     0,     8,   385,
  1863.    204,   205,     0,   206,    10,   216,     0,     0,   217,     0,
  1864.      0,     0,     0,     0,     0,     0,   218,   219,   220,    13,
  1865.    207,     0,   221,   222,   210,     0,    14,     0,   211,     0,
  1866.    223,   212,    16,     0,     0,   213,   214,   215,     0,     0,
  1867.      0,     0,    22,     0,     0,     0,     0,     0,     0,   216,
  1868.      0,     0,   217,     0,   224,   225,     0,     0,     0,     0,
  1869.    218,   219,   220,     0,     0,     0,   221,   222,     0,     0,
  1870.      0,   202,   126,     6,   386,     8,   385,   204,   205,     0,
  1871.    206,    10,     0,     0,     0,     0,    22,     0,     0,     0,
  1872.      0,     0,     0,     0,     0,     0,    13,   207,   224,   225,
  1873.      0,   210,     0,    14,     0,   211,     0,     0,   212,    16,
  1874.      0,     0,   213,   214,   215,     4,   126,     6,     7,     8,
  1875.      9,     0,     0,   680,     0,    10,   216,     0,     0,   217,
  1876.      0,     0,     0,     0,     0,     0,     0,   218,   219,   220,
  1877.     13,     0,     0,   221,   222,     0,     0,    14,     0,     0,
  1878.      0,   390,     0,    16,   262,     0,     0,     0,    18,   671,
  1879.      0,     0,     0,    22,     0,     0,     0,     0,     0,     0,
  1880.      0,     0,     0,   672,     0,   224,   225,     4,   126,     6,
  1881.      7,     8,     9,   673,     0,   244,     0,    10,     0,     0,
  1882.    266,     0,     0,     0,     0,   674,   268,     0,     0,     0,
  1883.      0,     0,    13,     0,     0,     0,     0,    22,     0,    14,
  1884.      0,     0,     0,     0,     0,    16,   262,     0,     0,    26,
  1885.     18,   574,   582,     6,   158,     8,   159,     0,     0,     0,
  1886.      0,    10,     0,     0,     0,   672,     0,     0,     0,     0,
  1887.      0,     0,     0,     0,     0,   673,    13,     0,     0,     0,
  1888.      0,     0,   266,    14,     0,     0,     0,   674,   268,    16,
  1889.    583,     0,     0,     0,    18,   144,     0,     0,   245,    22,
  1890.      0,     0,     0,   577,     0,     0,     0,     0,     0,   145,
  1891.      0,    26,     0,     4,   157,     6,   158,     8,   159,   146,
  1892.      0,     0,     0,    10,     0,     0,   147,     0,     0,     0,
  1893.      0,   584,     0,     0,     0,     0,     0,     0,    13,     0,
  1894.      0,     0,     0,    22,     0,    14,     0,     0,     0,     0,
  1895.      0,    16,     0,     0,     0,    26,    18,   144,     4,   126,
  1896.      6,     7,     8,     9,     0,     0,   244,     0,    10,     0,
  1897.      0,   145,     0,     0,     0,     0,     0,     0,     0,     0,
  1898.      0,   146,     0,    13,     0,     0,     0,     0,   147,     0,
  1899.     14,     0,     0,   148,     0,     0,    16,     0,     0,     0,
  1900.      0,    18,     0,     0,     0,    22,     0,     0,     0,     4,
  1901.    157,     6,   158,     8,   159,   160,   318,    26,     0,    10,
  1902.      0,     0,     0,     0,     0,     0,   319,     0,     0,     0,
  1903.      0,     0,     0,   320,    13,     0,     0,     0,   321,     0,
  1904.      0,    14,     0,     0,     0,     0,     0,    16,     0,   245,
  1905.     22,     0,    18,   144,     4,   157,     6,   158,     8,   159,
  1906.      0,     0,    26,     0,    10,     0,     0,   145,   486,   126,
  1907.      6,     7,     8,     9,     0,     0,   244,   146,    10,    13,
  1908.      0,     0,     0,     0,   147,     0,    14,     0,     0,   148,
  1909.      0,     0,    16,    13,     0,     0,     0,    18,   144,     0,
  1910.     14,    22,     0,     0,     0,     0,     0,   262,     0,     0,
  1911.      0,  1025,   145,    26,     0,     0,     0,     0,     0,     0,
  1912.      0,     0,   146,     0,     0,     0,   264,     0,     0,   147,
  1913.      0,     0,     0,     0,   148,     0,   265,     0,     0,     0,
  1914.      0,     0,     0,   266,     0,     0,    22,     0,   267,   268,
  1915.      0,     0,     0,     0,     0,     0,     0,     0,    26,   245,
  1916.     22,   413,   414,   415,     0,     0,   416,   417,   418,   419,
  1917.    420,   421,   422,   423,   424,   425,   426,   427,   428,   429,
  1918.    430,   431,   432,  -159,   413,   414,   415,     0,     0,   416,
  1919.    417,   418,   419,   420,   421,   422,   423,   424,   425,   426,
  1920.    427,   428,   429,   430,   431,   432,     0,     0,     0,     0,
  1921.      0,     0,     0,     0,   765,   766,   413,   414,   415,  1113,
  1922.   1114,   416,   417,   418,   419,   420,   421,   422,   423,   424,
  1923.    425,   426,   427,   428,   429,   430,   431,   432,   413,   414,
  1924.    415,  1169,     0,   416,   417,   418,   419,   420,   421,   422,
  1925.    423,   424,   425,   426,   427,   428,   429,   430,   431,   432,
  1926.    413,   414,   415,  1229,     0,   416,   417,   418,   419,   420,
  1927.    421,   422,   423,   424,   425,   426,   427,   428,   429,   430,
  1928.    431,   432,   413,   414,   415,     0,     0,   416,   417,   418,
  1929.    419,   420,   421,   422,   423,   424,   425,   426,   427,   428,
  1930.    429,   430,   431,   432,   415,     0,     0,   416,   417,   418,
  1931.    419,   420,   421,   422,   423,   424,   425,   426,   427,   428,
  1932.    429,   430,   431,   432,   417,   418,   419,   420,   421,   422,
  1933.    423,   424,   425,   426,   427,   428,   429,   430,   431,   432
  1934. };
  1935.  
  1936. static const short yycheck[] = {     1,
  1937.      2,    10,     1,     2,    68,    16,    38,    39,    16,   136,
  1938.    137,   106,   353,    40,    16,   122,   137,   275,     1,     2,
  1939.     39,    44,   275,   268,   600,   215,    51,   263,    30,   206,
  1940.    207,   267,   144,   135,   188,    44,   959,    39,   217,    40,
  1941.    217,   220,   242,   220,    10,   224,   713,   224,  1104,   228,
  1942.    148,   228,    34,    10,    10,   234,   297,   234,    51,    61,
  1943.     62,     3,     4,     5,    36,   906,    68,   908,    46,   570,
  1944.     55,     3,     4,    46,    36,   131,     8,    51,    62,    21,
  1945.    107,  1221,   898,   105,   106,   326,   331,    65,    46,     3,
  1946.      4,     0,    65,     7,   150,   127,   128,    55,    55,    34,
  1947.      3,     4,    46,     6,    46,    50,   108,    65,   164,    41,
  1948.     55,    42,   105,   106,    46,    51,   118,    34,   878,  1259,
  1949.    105,    51,   124,   301,   106,   124,   128,    41,    68,    61,
  1950.    155,   105,   105,    36,   106,   162,     3,     4,   104,    71,
  1951.   1196,   168,     8,   238,   106,   201,   241,   104,   104,     3,
  1952.      4,    83,    83,    95,     3,     4,    98,   311,  1081,   223,
  1953.     16,   162,   518,    95,   106,    21,  1222,   168,   104,     3,
  1954.      4,   106,     6,   104,    41,   107,   106,   304,   305,   306,
  1955.    898,    95,    38,   304,   305,     3,     4,   905,   190,   106,
  1956.    857,   193,    95,   107,  1112,   551,   195,    83,   200,     3,
  1957.      4,   303,    36,   704,   316,   317,    62,   216,   398,   193,
  1958.     46,   469,   239,   215,   197,   394,   200,   394,    51,    42,
  1959.     86,   223,    71,   321,    51,  1041,    50,    93,    95,  1045,
  1960.     53,    55,    50,   289,     1,     2,   996,   997,   998,   241,
  1961.    107,    95,    51,   252,   271,   247,    95,   274,   484,   485,
  1962.    495,    51,   108,   453,  1172,    51,   112,   113,   114,    51,
  1963.     83,    95,    11,    30,    51,   267,   507,  1323,  1324,   105,
  1964.    271,   127,   105,   275,     3,     4,   299,    95,     7,   106,
  1965.    407,   105,   284,   223,   340,   284,  1046,  1047,   144,    46,
  1966.    299,    95,   148,    61,   472,    62,   105,     3,     4,   355,
  1967.    299,   284,    51,    71,   549,   105,    55,   334,    65,   105,
  1968.    886,   375,   888,   105,   297,   171,    50,   104,   350,   351,
  1969.    561,   344,   386,  1041,    51,   381,   390,  1045,   330,    51,
  1970.     55,   395,   396,   334,   361,     3,     4,     5,  1179,   195,
  1971.     65,     1,   198,   326,   200,    94,   330,   104,  1108,   351,
  1972.      3,   353,   708,    51,   337,   856,    50,   124,    65,   215,
  1973.    361,    55,  1122,    55,    51,  1125,    95,    51,     4,     5,
  1974.      6,     7,     8,   375,    42,     7,     8,    13,   105,   443,
  1975.    236,    13,    65,   105,   386,   241,    51,    51,   390,    95,
  1976.     50,   247,    28,   395,   396,    51,     3,  1115,    83,    35,
  1977.     50,   757,     9,    35,   106,  1234,   104,   534,   410,  1225,
  1978.     42,   105,   104,   534,    55,    83,   772,   104,    65,   275,
  1979.    104,    51,  1251,   190,    50,   365,   193,    95,    55,  1270,
  1980.    542,   543,    51,   200,    51,   671,   109,  1278,   674,   104,
  1981.    104,   443,   451,   299,   702,    51,   386,    42,   104,   702,
  1982.    390,    83,   392,   393,   463,   395,     3,     4,     5,    95,
  1983.    316,   317,   487,   104,    24,   321,  1184,   469,   477,    51,
  1984.    497,   327,    42,  1289,   104,   415,   332,   500,    26,    27,
  1985.    578,   660,  1298,   660,    32,   104,   584,   104,    83,    84,
  1986.     50,   500,   494,    53,   350,    55,   497,   604,   104,    46,
  1987.    267,   441,     5,    51,   444,    53,    24,  1225,   275,   104,
  1988.    494,    46,    51,    83,    84,     3,     4,   284,   527,   375,
  1989.     55,   530,   104,   579,   507,   105,   106,    66,    51,   585,
  1990.     65,    42,    51,   774,   104,    51,    51,    55,     8,    50,
  1991.    396,   782,    46,  1261,    55,   105,   548,   570,    95,     7,
  1992.      8,    98,    51,    41,    42,    13,    10,   105,    46,    47,
  1993.     51,    51,    51,   330,   548,     3,     4,    55,     6,     7,
  1994.      8,  1289,    83,    61,   930,   931,   578,    35,   561,   935,
  1995.   1298,   104,   584,    71,    42,   104,   353,   443,   104,   104,
  1996.     78,     6,     7,     8,   578,    83,     5,    35,    13,    51,
  1997.    584,   600,   943,   839,   840,   104,   608,    95,   610,   465,
  1998.    466,    49,    50,   104,   104,   104,    51,    51,     3,   107,
  1999.     35,    51,    51,   679,   608,    83,   610,    42,   106,   741,
  2000.    742,   658,    42,     3,     4,    99,    66,    46,   494,     3,
  2001.      4,     5,    42,   755,   756,    51,   657,    86,   105,   657,
  2002.    828,   830,   104,   830,    93,   657,    51,    95,    42,     1,
  2003.      2,    55,   100,   101,   102,   843,   844,   109,    83,   104,
  2004.    104,    41,   674,    83,    84,   104,    46,   686,    83,    21,
  2005.     83,   704,    46,    83,    84,     8,   542,   543,    30,   867,
  2006.    868,    61,    83,   716,   104,  1271,    38,    39,   104,    83,
  2007.    702,    71,   469,    46,     7,     8,  1062,   716,    78,   104,
  2008.     13,    42,    55,    83,    83,   771,     1,   716,    83,    42,
  2009.      3,     4,    65,   779,   733,    95,    42,   494,   792,   824,
  2010.    825,    95,    35,   735,    98,    42,   759,   107,    61,    42,
  2011.    976,   977,    51,   775,   600,    37,     3,     4,    71,   805,
  2012.     65,     8,    83,    84,    46,    78,    38,    66,    41,    42,
  2013.     83,    84,    10,    46,    47,    50,    51,    83,    42,   947,
  2014.    112,   113,   114,   104,    26,    27,    83,    84,    61,    42,
  2015.     83,   548,   124,   785,    41,   127,   128,    42,    71,    46,
  2016.    792,   774,   104,  1149,  1150,    78,  1152,   104,    42,   782,
  2017.     83,    84,   144,    42,    61,   106,   148,   985,   817,    83,
  2018.     84,   578,    95,    50,    71,   671,   841,   584,    55,    51,
  2019.     83,    78,  1063,   825,   107,   827,    83,    42,    83,   171,
  2020.    104,    42,    50,   856,    66,    42,    53,    55,    95,    83,
  2021.     84,   608,    86,   610,    83,    84,   702,    86,   190,    93,
  2022.    107,    42,    42,   195,    93,   104,   198,    42,    46,   868,
  2023.    716,   105,    51,    86,   896,   897,   104,    55,    83,    84,
  2024.     93,   998,    83,    84,  1052,   884,    83,   886,   897,     3,
  2025.      3,    46,   105,   939,     8,   741,   742,   886,  1129,   888,
  2026.     55,    50,    83,    83,   236,   897,   898,   961,    83,   755,
  2027.    756,  1079,   466,   905,   906,   469,   908,   674,     3,     4,
  2028.    912,    42,     3,     4,     4,     5,     6,     7,     8,   775,
  2029.   1165,  1166,  1100,    13,    42,   267,  1282,     6,     7,     8,
  2030.     61,  1167,  1168,   109,    13,   702,   792,    42,    28,    42,
  2031.     71,   943,   284,   883,     3,    35,    41,    78,    42,   109,
  2032.    890,    46,    83,    84,    42,    42,    35,   299,    46,   961,
  2033.    105,   106,    46,    26,    27,    83,    61,  1023,  1146,   825,
  2034.   1148,    55,  1028,   109,   316,   317,    71,    65,    83,   321,
  2035.     83,    51,   991,   839,   840,   327,  1164,    50,    83,    83,
  2036.    332,  1169,    55,    61,    86,    83,    83,   999,    46,    50,
  2037.     95,    93,  1058,     1,   104,    95,   104,    55,   350,   351,
  2038.   1066,   353,   107,   105,    83,   955,   105,   106,   785,  1260,
  2039.   1127,    32,    26,    27,   105,   106,    24,  1036,    26,    27,
  2040.    886,   104,   888,   104,    32,    53,  1035,  1323,  1324,  1041,
  2041.    896,    46,    42,  1045,    42,   109,    50,    47,    26,    27,
  2042.    118,    55,    50,    51,    32,    53,    51,    55,  1085,   999,
  2043.    104,    61,  1240,   105,   106,  1160,  1161,  1007,    46,   104,
  2044.   1079,    71,    50,  1084,   104,    53,  1084,    55,    78,   104,
  2045.   1063,   109,  1084,    83,    84,    83,    84,    65,    86,     6,
  2046.      7,     8,     7,     8,   109,    93,    13,   105,    13,   105,
  2047.    106,  1112,  1104,   105,  1112,   961,    84,   105,    86,   105,
  2048.   1112,   105,   106,  1115,   105,    93,   972,   105,    35,   104,
  2049.     35,   105,   106,   465,   466,   193,   109,   469,   106,   105,
  2050.    106,  1142,  1143,   104,  1142,  1143,    71,    72,    73,    51,
  2051.   1142,  1143,   105,   106,     5,   912,  1129,    55,  1326,    83,
  2052.   1133,  1183,   105,   106,     4,     5,    53,     7,     8,  1161,
  2053.    104,  1172,   104,    13,  1172,     1,   105,   106,   104,   237,
  2054.   1172,  1227,  1112,   206,   207,   104,   943,  1179,    28,  1035,
  2055.   1307,  1308,  1184,  1273,  1274,    35,   104,    66,    24,    55,
  2056.     26,    27,   106,   104,  1196,   104,    32,    53,    42,   109,
  2057.    542,   543,  1142,  1143,   109,   107,    42,     4,     5,  1336,
  2058.      7,     8,    53,    53,    50,    51,    13,    53,   104,    55,
  2059.   1222,   109,    95,  1225,    55,    55,    34,   104,  1084,  1293,
  2060.    104,    28,  1172,   301,   302,    53,   578,   109,    35,   104,
  2061.      4,     5,   584,     7,     8,    95,   104,    83,    84,    13,
  2062.     86,    83,    49,   104,    83,   104,   104,    93,   600,  1261,
  2063.      7,   104,   330,    83,    28,    55,    24,   106,  1270,   105,
  2064.    105,    35,  1271,    50,    50,     8,  1278,  1260,     3,     4,
  2065.    348,     6,     7,     8,    42,    49,    83,  1289,    46,   105,
  2066.    105,  1293,    50,    15,    53,    53,  1298,    55,    95,    51,
  2067.   1309,   104,   104,    42,    55,  1161,   105,    65,    83,   105,
  2068.     35,  1167,  1168,   105,   105,  1255,   384,    83,   105,    83,
  2069.    105,  1323,  1324,    53,    49,    50,    84,  1183,    83,   671,
  2070.    104,    95,   674,  1273,  1274,    69,    70,    71,    72,    73,
  2071.      3,     4,   410,   106,  1284,   413,   414,    53,   416,   417,
  2072.    418,   419,   420,   421,   422,   423,   424,   425,   426,   427,
  2073.    428,   429,   430,   431,   432,    84,    84,    16,    42,   105,
  2074.     95,   439,   440,   105,   716,   100,   101,   102,    41,   106,
  2075.     50,   105,   105,    46,     3,     4,   193,    53,   105,     8,
  2076.    458,    67,    68,    69,    70,    71,    72,    73,    61,   741,
  2077.    742,    75,    76,    50,   472,    79,   104,    81,    71,    83,
  2078.     84,   479,   104,   755,   756,  1271,   105,   105,   104,   104,
  2079.     83,   104,    41,    42,   104,     4,     5,    46,     7,     8,
  2080.    109,   109,    95,   775,    13,    10,   105,  1293,   105,    90,
  2081.      1,     2,    61,   785,   107,   105,     9,   105,    83,    28,
  2082.     51,    83,    71,    51,   522,   105,    35,     9,   104,    78,
  2083.    104,   104,   530,    53,    83,    84,   104,     1,     2,    30,
  2084.    104,    10,   105,   104,    10,   105,    95,     1,   123,     1,
  2085.    548,     3,     4,     5,     6,     7,     8,    21,   107,     0,
  2086.      0,    13,   286,     2,   702,   302,    30,   839,   840,   124,
  2087.     24,    62,    26,    27,   124,    39,    28,   135,    32,   577,
  2088.    716,   500,   118,    35,    36,   410,    95,   758,  1081,    41,
  2089.   1103,  1143,   999,   330,    46,  1195,    50,    51,   274,    53,
  2090.    896,    55,   327,    55,     4,     5,     6,     7,     8,    61,
  2091.    608,    11,   610,    13,   886,   162,   888,  1155,   817,    71,
  2092.    688,    30,    30,   570,   896,   897,   624,   759,    28,   738,
  2093.    628,    83,    86,   124,   912,    35,   785,   351,   321,    93,
  2094.    912,   477,   686,    95,   736,     1,     2,   384,   112,   113,
  2095.    114,   105,  1042,   105,   106,   107,  1285,   655,   247,   657,
  2096.    124,  1287,   792,    -1,  1035,    21,    -1,    -1,   666,    -1,
  2097.     -1,   943,   670,    -1,    30,     3,     4,    -1,    -1,    -1,
  2098.    144,    -1,    38,    39,   148,    -1,    -1,   685,    -1,    -1,
  2099.     -1,    -1,    -1,    -1,    94,    95,    -1,    -1,    42,   190,
  2100.    972,    -1,   193,   440,    -1,    -1,     3,     4,    -1,   200,
  2101.     -1,    -1,    -1,    41,    -1,    -1,    -1,    -1,    46,    47,
  2102.    718,   458,   720,    -1,    -1,   723,   190,    -1,   726,    -1,
  2103.     -1,    75,    76,    61,   198,    79,    80,    81,    82,    83,
  2104.     84,    -1,    -1,    71,    41,    42,    -1,    -1,    -1,    46,
  2105.     78,    -1,    -1,    -1,    -1,    83,   112,   113,   114,    -1,
  2106.     -1,    -1,    -1,  1035,    61,    -1,    -1,    95,   124,   767,
  2107.    768,   127,   128,    -1,    71,    -1,   267,   105,    -1,   107,
  2108.     -1,    78,    -1,    -1,   275,   522,    83,    84,   144,    -1,
  2109.     -1,    -1,   148,   284,    -1,    -1,    -1,    -1,    95,    63,
  2110.     64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
  2111.    107,   548,    -1,    -1,    -1,   171,    -1,    -1,    -1,   817,
  2112.    284,   819,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   827,
  2113.    828,    -1,    -1,    -1,   190,    -1,    -1,   835,    -1,   330,
  2114.     -1,    -1,   198,    -1,    -1,   843,   844,     3,     4,    -1,
  2115.     -1,    -1,   316,   317,    -1,     3,     4,   321,    -1,   215,
  2116.     -1,    -1,   353,     3,     4,    -1,   864,    -1,   332,   867,
  2117.    868,   608,    -1,   610,    -1,    -1,    -1,    -1,    -1,    -1,
  2118.    236,   879,    -1,    -1,    -1,    41,   242,   624,    -1,   353,
  2119.     46,    47,    -1,    41,    -1,  1167,  1168,    -1,    46,    55,
  2120.     -1,    41,    -1,    -1,    -1,    61,    46,    47,    -1,    -1,
  2121.     -1,  1183,    -1,    61,    -1,    71,    19,    20,   655,    -1,
  2122.    657,    61,    78,    71,    -1,    -1,    -1,    83,   284,   666,
  2123.     78,    71,    -1,   670,    -1,    83,    -1,    -1,    78,    95,
  2124.    938,    -1,    -1,    83,    -1,    -1,    -1,    95,    -1,   947,
  2125.     -1,   107,    -1,    -1,    -1,    95,    59,    -1,    -1,   107,
  2126.    316,   317,    -1,    -1,    -1,   321,    -1,   107,    -1,    -1,
  2127.     -1,   327,    -1,    -1,    -1,    -1,   332,    -1,   469,     3,
  2128.      4,   718,    -1,   720,    -1,    -1,   723,   985,    -1,   987,
  2129.     -1,    -1,    -1,    -1,   350,   351,    -1,   353,    -1,  1271,
  2130.     -1,   465,   466,   494,    -1,   469,     1,    -1,     3,     4,
  2131.      5,     6,     7,     8,    -1,    -1,    -1,    41,    13,    -1,
  2132.     -1,    -1,    46,    -1,    -1,    -1,     3,     4,    -1,    -1,
  2133.     -1,    -1,    -1,    28,    -1,    -1,    -1,    61,    -1,    -1,
  2134.     35,    36,   145,   146,    -1,    -1,    41,    71,     3,     4,
  2135.      5,    46,     7,    -1,  1052,    -1,    -1,   548,    13,    83,
  2136.     55,    -1,  1060,  1061,    41,    -1,    61,    -1,    -1,    46,
  2137.     47,    95,    -1,    28,    -1,    -1,    71,    -1,   542,   543,
  2138.     35,  1079,    37,   107,    61,    -1,    41,   578,    83,   192,
  2139.    827,    46,    -1,   584,    71,    -1,   199,   453,   835,    -1,
  2140.     95,    78,  1100,    -1,    -1,    -1,    83,    -1,    -1,   465,
  2141.    466,   106,   107,   469,   578,    -1,  1114,   608,    95,   610,
  2142.    584,    -1,    -1,  1121,    -1,    -1,  1124,   864,   105,    -1,
  2143.    107,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2144.     95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1146,    -1,
  2145.   1148,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   262,
  2146.     -1,   264,   265,    -1,    -1,  1163,  1164,    -1,    -1,    -1,
  2147.     -1,  1169,    64,    65,    66,    67,    68,    69,    70,    71,
  2148.     72,    73,    -1,   674,    -1,    -1,   542,   543,    -1,    -1,
  2149.     -1,    -1,    -1,     1,    -1,    -1,     4,     5,    -1,     7,
  2150.      8,    -1,    -1,    -1,    -1,    13,    -1,   671,    -1,    -1,
  2151.    674,   702,    -1,    -1,    -1,   318,   319,    -1,    -1,    -1,
  2152.     28,    -1,   578,    -1,    -1,    -1,   329,    35,   584,    37,
  2153.     38,    -1,    -1,    -1,    42,    -1,    -1,    -1,    -1,    -1,
  2154.     -1,    -1,  1240,    51,    52,    53,    54,    -1,    -1,    57,
  2155.     58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
  2156.     68,    69,    70,    71,    72,    73,    -1,    75,    76,    -1,
  2157.     -1,    79,    80,    -1,    -1,    -1,    84,   741,   742,    -1,
  2158.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    95,     3,     4,
  2159.     -1,   755,   756,    -1,   785,    -1,    -1,    -1,    -1,   107,
  2160.    108,     3,     4,    -1,    -1,    -1,     0,     1,    -1,     3,
  2161.      4,     5,     6,     7,     8,   671,    -1,    -1,   674,    13,
  2162.     -1,   785,    -1,    -1,    -1,    -1,    41,    -1,  1326,    -1,
  2163.     -1,    46,    26,    27,    28,    -1,    -1,    -1,    -1,    41,
  2164.     -1,    35,    -1,    -1,    46,    39,    61,    41,    -1,    43,
  2165.     -1,    -1,    46,    -1,    -1,    -1,    71,    -1,    -1,    61,
  2166.     -1,    -1,    -1,    78,   467,    -1,    -1,    61,    83,    71,
  2167.     -1,    -1,    -1,    -1,    -1,   839,   840,    71,    -1,    -1,
  2168.     95,    83,    -1,    -1,  1121,   741,   742,  1124,    -1,    83,
  2169.    493,    -1,   107,    95,    -1,    -1,    -1,    -1,    -1,   755,
  2170.    756,    95,    96,    97,    -1,   107,    -1,    -1,    -1,    -1,
  2171.     -1,   105,    -1,   107,    -1,    -1,    -1,    -1,    -1,   775,
  2172.     -1,   912,    -1,    -1,    -1,    -1,  1163,    -1,    -1,   785,
  2173.     -1,    -1,    -1,   897,    -1,    -1,    -1,    -1,    -1,    -1,
  2174.     -1,   544,   545,    -1,   547,    -1,    -1,    -1,   912,    -1,
  2175.     -1,    -1,   943,    -1,    -1,    -1,   559,   560,    59,    60,
  2176.     61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
  2177.     71,    72,    73,   576,    -1,    -1,    -1,    -1,    -1,   943,
  2178.    583,    -1,    -1,   839,   840,    -1,    -1,    -1,    -1,   592,
  2179.    593,   594,    62,    63,    64,    65,    66,    67,    68,    69,
  2180.     70,    71,    72,    73,   607,    -1,   609,    -1,   972,   612,
  2181.     -1,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,     5,
  2182.      6,     7,     8,     9,    10,    11,    12,    13,    -1,    -1,
  2183.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2184.    896,   897,    28,    29,    30,    31,    -1,    33,    -1,    35,
  2185.     -1,    37,    38,    -1,    40,    41,   912,    -1,    44,    45,
  2186.     46,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   672,
  2187.    673,    -1,    58,    -1,    -1,    61,    -1,    -1,    -1,    -1,
  2188.     -1,    -1,    -1,    69,    70,    71,    -1,   943,    -1,    75,
  2189.     76,    -1,    -1,   696,    -1,    -1,    -1,    83,    -1,    -1,
  2190.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,
  2191.     -1,    -1,    -1,    -1,    -1,    -1,   972,    -1,   104,    -1,
  2192.     -1,   107,   108,    -1,    -1,    52,    53,    54,    -1,    -1,
  2193.     57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
  2194.     67,    68,    69,    70,    71,    72,    73,    -1,   751,   752,
  2195.    753,     1,    -1,     3,     4,     5,     6,     7,     8,     9,
  2196.     10,    -1,    12,    13,    14,    15,    16,    17,    18,    19,
  2197.     20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
  2198.     30,    31,   109,    33,    -1,    35,    -1,    37,    38,    -1,
  2199.     40,    41,    -1,    -1,    44,    45,    46,    -1,    -1,    49,
  2200.     50,    -1,    -1,  1167,  1168,    -1,    -1,    -1,    58,    -1,
  2201.     -1,    61,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,
  2202.     70,    71,    -1,    -1,    -1,    75,    76,    -1,    -1,    -1,
  2203.     -1,    -1,    -1,    83,    -1,    85,    -1,    87,    88,    89,
  2204.     -1,    91,    92,    93,    -1,    95,   849,   850,    -1,   852,
  2205.      4,     5,    -1,     7,     8,   105,   106,   107,   108,    13,
  2206.     60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
  2207.     70,    71,    72,    73,    28,    -1,    -1,    -1,    -1,    -1,
  2208.     -1,    35,    -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,
  2209.     -1,    -1,    -1,    47,    61,    62,    63,    64,    65,    66,
  2210.     67,    68,    69,    70,    71,    72,    73,    61,    -1,    -1,
  2211.     -1,  1167,  1168,    -1,   917,   918,   919,    71,    -1,    -1,
  2212.     -1,    -1,    -1,    -1,    78,    -1,    -1,  1183,    -1,    83,
  2213.     84,   934,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   942,
  2214.     -1,    95,    -1,    -1,    -1,   948,   949,   950,   951,   952,
  2215.    953,     1,    -1,     3,     4,     5,     6,     7,     8,     9,
  2216.     10,    -1,    12,    13,    14,    -1,    16,    17,    18,    19,
  2217.     20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
  2218.     30,    31,    -1,    33,    -1,    35,    -1,    37,    38,    -1,
  2219.     40,    41,    -1,    -1,    44,    45,    46,    -1,    -1,    49,
  2220.     50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,    -1,
  2221.     -1,    61,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,
  2222.     70,    71,    -1,    -1,    -1,    75,    76,    -1,    -1,    -1,
  2223.     -1,    -1,    -1,    83,    -1,    85,    -1,    -1,    88,    32,
  2224.     -1,    91,    92,    93,    -1,    95,    -1,    -1,    -1,    -1,
  2225.     -1,    -1,    -1,    -1,    -1,   105,   106,   107,   108,    52,
  2226.     53,    54,    -1,    -1,    57,    58,    59,    60,    61,    62,
  2227.     63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
  2228.     73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2229.   1093,  1094,     1,    -1,     3,     4,     5,     6,     7,     8,
  2230.      9,    10,    -1,    12,    13,    14,    -1,    16,    17,    18,
  2231.     19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
  2232.     29,    30,    31,    -1,    33,    -1,    35,    -1,    37,    38,
  2233.     -1,    40,    41,    -1,    -1,    44,    45,    46,    -1,    -1,
  2234.     49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,
  2235.     -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2236.     69,    70,    71,    -1,    -1,    -1,    75,    76,    -1,    -1,
  2237.     -1,    -1,    -1,    -1,    83,    -1,    85,    -1,    -1,    88,
  2238.     -1,    -1,    91,    92,    93,    -1,    95,    -1,    -1,    -1,
  2239.     -1,    -1,    -1,    -1,    -1,    -1,   105,   106,   107,   108,
  2240.      1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
  2241.     -1,    12,    13,    14,    -1,    16,    17,    18,    19,    20,
  2242.     21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
  2243.     31,    -1,    33,    -1,    35,    -1,    37,    38,    -1,    40,
  2244.     41,    -1,    -1,    44,    45,    46,    -1,    -1,    49,    50,
  2245.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,
  2246.     61,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,    70,
  2247.     71,    -1,    -1,    -1,    75,    76,    -1,    -1,    -1,    -1,
  2248.     -1,    -1,    83,    -1,    85,    -1,    -1,    88,    -1,    -1,
  2249.     91,    92,    93,    -1,    95,    -1,    -1,    -1,    -1,    -1,
  2250.     -1,    -1,    -1,    -1,   105,   106,   107,   108,     1,    -1,
  2251.      3,     4,     5,     6,     7,     8,     9,    10,    -1,    12,
  2252.     13,    14,    -1,    16,    17,    18,    19,    20,    21,    22,
  2253.     23,    24,    25,    26,    27,    28,    29,    30,    31,    -1,
  2254.     33,    -1,    35,    -1,    37,    38,    -1,    40,    41,    -1,
  2255.     -1,    44,    45,    46,    -1,    -1,    49,    50,    -1,    -1,
  2256.     -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,    61,    -1,
  2257.     -1,    -1,    -1,    -1,    -1,    -1,    69,    70,    71,    -1,
  2258.     -1,    -1,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,
  2259.     83,    -1,    85,    -1,    -1,    88,    -1,    -1,    91,    92,
  2260.     93,    -1,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2261.     -1,    -1,   105,   106,   107,   108,     1,    -1,     3,     4,
  2262.      5,     6,     7,     8,     9,    10,    -1,    12,    13,    14,
  2263.     -1,    16,    17,    18,    19,    20,    21,    22,    23,    24,
  2264.     25,    26,    27,    28,    29,    30,    31,    -1,    33,    -1,
  2265.     35,    -1,    37,    38,    -1,    40,    41,    -1,    -1,    44,
  2266.     45,    46,    -1,    -1,    49,    50,    -1,    -1,    -1,    -1,
  2267.     -1,    -1,    -1,    58,    -1,    -1,    61,    -1,    -1,    -1,
  2268.     -1,    -1,    -1,    -1,    69,    70,    71,    -1,    -1,    -1,
  2269.     75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,    -1,
  2270.     85,    -1,    -1,    88,    -1,    -1,    91,    92,    93,    -1,
  2271.     95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2272.    105,   106,   107,   108,     1,    -1,     3,     4,     5,     6,
  2273.      7,     8,     9,    10,    -1,    12,    13,    14,    -1,    16,
  2274.     17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
  2275.     27,    28,    29,    30,    31,    -1,    33,    -1,    35,    -1,
  2276.     37,    38,    -1,    40,    41,    -1,    -1,    44,    45,    46,
  2277.     -1,    -1,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,
  2278.     -1,    58,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,
  2279.     -1,    -1,    69,    70,    71,    -1,    -1,    -1,    75,    76,
  2280.     -1,    -1,    -1,    -1,    -1,    -1,    83,    -1,    85,    -1,
  2281.     -1,    88,    -1,    -1,    91,    92,    93,    -1,    95,    -1,
  2282.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   105,   106,
  2283.    107,   108,     1,    -1,     3,     4,     5,     6,     7,     8,
  2284.      9,    10,    -1,    12,    13,    14,    -1,    16,    17,    18,
  2285.     19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
  2286.     29,    30,    31,    -1,    33,    -1,    35,    -1,    37,    38,
  2287.     -1,    40,    41,    -1,    -1,    44,    45,    46,    -1,    -1,
  2288.     49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,
  2289.     -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2290.     69,    70,    71,    -1,    -1,    -1,    75,    76,    -1,    -1,
  2291.     -1,    -1,    -1,    -1,    83,    -1,    85,    -1,    -1,    88,
  2292.     -1,    -1,    91,    92,    93,    -1,    95,    -1,    -1,    -1,
  2293.     -1,    -1,    -1,    -1,    -1,    -1,   105,   106,   107,   108,
  2294.      1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
  2295.     -1,    12,    13,    14,    -1,    16,    17,    18,    19,    20,
  2296.     21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
  2297.     31,    -1,    33,    -1,    35,    -1,    37,    38,    -1,    40,
  2298.     41,    -1,    -1,    44,    45,    46,    -1,    -1,    49,    50,
  2299.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,
  2300.     61,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,    70,
  2301.     71,    -1,    -1,    -1,    75,    76,    -1,    -1,    -1,    -1,
  2302.     -1,    -1,    83,    -1,    85,    -1,    -1,    88,    -1,    -1,
  2303.     91,    92,    93,    -1,    95,    -1,    -1,    -1,    -1,    -1,
  2304.     -1,    -1,    -1,    -1,   105,   106,   107,   108,     1,    -1,
  2305.      3,     4,     5,     6,     7,     8,     9,    10,    -1,    12,
  2306.     13,    14,    -1,    16,    17,    18,    19,    20,    21,    22,
  2307.     23,    24,    25,    26,    27,    28,    29,    30,    31,    -1,
  2308.     33,    -1,    35,    -1,    37,    38,    -1,    40,    41,    -1,
  2309.     -1,    44,    45,    46,    -1,    -1,    49,    50,    -1,    -1,
  2310.     -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,    61,    -1,
  2311.     -1,    -1,    -1,    -1,    -1,    -1,    69,    70,    71,    -1,
  2312.     -1,    -1,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,
  2313.     83,    -1,    85,    -1,    -1,    88,    -1,    -1,    91,    92,
  2314.     93,    -1,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2315.     -1,    -1,   105,    -1,   107,   108,     1,    -1,     3,     4,
  2316.      5,     6,     7,     8,     9,    10,    -1,    12,    13,    14,
  2317.     -1,    16,    17,    18,    19,    20,    21,    22,    23,    24,
  2318.     25,    26,    27,    28,    29,    30,    31,    -1,    33,    -1,
  2319.     35,    -1,    37,    38,    -1,    40,    41,    -1,    -1,    44,
  2320.     45,    46,    -1,    -1,    49,    50,    -1,    -1,    -1,    -1,
  2321.     -1,    -1,    -1,    58,    -1,    -1,    61,    -1,    -1,    -1,
  2322.     -1,    -1,    -1,    -1,    69,    70,    71,    -1,    -1,    -1,
  2323.     75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,    -1,
  2324.     85,    -1,    -1,    88,    -1,    -1,    91,    92,    93,    -1,
  2325.     95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2326.    105,    -1,   107,   108,     1,    -1,     3,     4,     5,     6,
  2327.      7,     8,     9,    10,    -1,    12,    13,    14,    -1,    16,
  2328.     17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
  2329.     27,    28,    29,    30,    31,    -1,    33,    -1,    35,    -1,
  2330.     37,    38,    -1,    40,    41,    -1,    -1,    44,    45,    46,
  2331.     -1,    -1,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,
  2332.     -1,    58,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,
  2333.     -1,    -1,    69,    70,    71,    -1,    -1,    -1,    75,    76,
  2334.     -1,    -1,    -1,    -1,    -1,    -1,    83,    -1,    85,    -1,
  2335.     -1,    88,    -1,    -1,    91,    92,    93,    -1,    95,    -1,
  2336.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   105,    -1,
  2337.    107,   108,     1,    -1,     3,     4,     5,     6,     7,     8,
  2338.      9,    10,    -1,    12,    13,    14,    -1,    16,    17,    18,
  2339.     19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
  2340.     29,    30,    31,    -1,    33,    -1,    35,    -1,    37,    38,
  2341.     -1,    40,    41,    -1,    -1,    44,    45,    46,    -1,    -1,
  2342.     49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,
  2343.     -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2344.     69,    70,    71,    -1,    -1,    -1,    75,    76,    -1,    -1,
  2345.     -1,    -1,    -1,    -1,    83,    -1,    85,    -1,    -1,    88,
  2346.     -1,    -1,    91,    92,    93,    -1,    95,    -1,    -1,    -1,
  2347.     -1,    -1,    -1,    -1,    -1,    -1,   105,    -1,   107,   108,
  2348.      1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
  2349.     11,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2350.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,
  2351.     31,    -1,    33,    -1,    35,    -1,    37,    38,    -1,    40,
  2352.     41,    -1,    -1,    44,    45,    46,    -1,    -1,    -1,    -1,
  2353.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,
  2354.     61,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,    70,
  2355.     71,    -1,    -1,    -1,    75,    76,    -1,    -1,    -1,    -1,
  2356.     -1,    -1,    83,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2357.     -1,    -1,    -1,    94,    95,    -1,    -1,    -1,    -1,    -1,
  2358.     -1,    -1,    -1,   104,    -1,    -1,   107,   108,     1,    -1,
  2359.      3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
  2360.     13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2361.     -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,    -1,
  2362.     33,    -1,    35,    -1,    37,    38,    -1,    40,    41,    -1,
  2363.     -1,    44,    45,    46,    -1,    -1,    -1,    -1,    -1,    -1,
  2364.     -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,    61,    -1,
  2365.     -1,    -1,    -1,    -1,    -1,    -1,    69,    70,    71,    -1,
  2366.     -1,    -1,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,
  2367.     83,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2368.     -1,    94,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2369.     -1,   104,    -1,    -1,   107,   108,     1,    -1,     3,     4,
  2370.      5,     6,     7,     8,     9,    10,    11,    12,    13,    -1,
  2371.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2372.     -1,    -1,    -1,    28,    29,    30,    31,    -1,    33,    -1,
  2373.     35,    -1,    37,    38,    -1,    40,    41,    -1,    -1,    44,
  2374.     45,    46,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2375.     -1,    -1,    -1,    58,    -1,    -1,    61,    -1,    -1,    -1,
  2376.     -1,    -1,    -1,    -1,    69,    70,    71,    -1,    -1,    -1,
  2377.     75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,    -1,
  2378.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,
  2379.     95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   104,
  2380.     -1,    -1,   107,   108,     1,    -1,     3,     4,     5,     6,
  2381.      7,     8,     9,    10,    11,    12,    13,    -1,    -1,    -1,
  2382.     -1,    -1,    -1,     1,    -1,     3,     4,     5,     6,     7,
  2383.      8,    28,    29,    30,    31,    13,    33,    -1,    35,    -1,
  2384.     37,    38,    -1,    40,    41,    -1,    -1,    44,    45,    46,
  2385.     28,    -1,    -1,    -1,    -1,    -1,    -1,    35,    36,    -1,
  2386.     -1,    58,    -1,    41,    61,    -1,    -1,    -1,    46,    -1,
  2387.     -1,    -1,    69,    70,    71,    -1,    -1,    55,    75,    76,
  2388.     -1,    -1,    -1,    61,    -1,    -1,    83,    -1,    -1,    -1,
  2389.     -1,    -1,    -1,    71,    -1,    -1,    -1,    94,    95,    -1,
  2390.     -1,    -1,    -1,    -1,    -1,    83,    -1,   104,    -1,    -1,
  2391.    107,   108,     1,    -1,     3,     4,     5,    95,     7,     8,
  2392.      9,    10,    -1,    12,    13,    -1,    -1,   105,   106,   107,
  2393.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
  2394.     29,    30,    31,    -1,    33,    -1,    35,    -1,    37,    38,
  2395.     -1,    40,    41,    -1,    -1,    44,    45,    46,    -1,    -1,
  2396.     -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,
  2397.     -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2398.     69,    70,    71,    -1,    -1,    -1,    75,    76,    -1,    -1,
  2399.     -1,    -1,    -1,    -1,    83,    84,     1,    -1,     3,     4,
  2400.      5,    -1,     7,     8,     9,    10,    95,    12,    13,    -1,
  2401.     -1,    -1,    -1,    -1,    -1,    20,    -1,   106,   107,   108,
  2402.     -1,    -1,    -1,    28,    29,    30,    31,    -1,    33,    -1,
  2403.     35,    -1,    37,    38,    -1,    40,    41,    -1,    -1,    44,
  2404.     45,    46,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,
  2405.     -1,    -1,    -1,    58,    -1,    -1,    61,    -1,    -1,    -1,
  2406.     -1,    -1,    -1,    -1,    69,    70,    71,    -1,    -1,    -1,
  2407.     75,    76,    -1,    -1,    -1,    -1,    -1,     1,    83,     3,
  2408.      4,     5,     6,     7,     8,     9,    10,    -1,    12,    13,
  2409.     95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2410.     -1,   106,   107,   108,    28,    29,    30,    31,    -1,    33,
  2411.     -1,    35,    -1,    37,    38,    -1,    40,    41,    -1,    -1,
  2412.     44,    45,    46,    -1,    -1,    -1,    50,    -1,    -1,    -1,
  2413.     -1,    -1,    -1,    -1,    58,    -1,    -1,    61,    -1,    -1,
  2414.     -1,    -1,    -1,    -1,    -1,    69,    70,    71,    -1,    -1,
  2415.     -1,    75,    76,    -1,    -1,    -1,    -1,    -1,     1,    83,
  2416.      3,     4,     5,    -1,     7,     8,     9,    10,    -1,    12,
  2417.     13,    95,    -1,    -1,    -1,    -1,    -1,    20,    -1,    -1,
  2418.     -1,   105,    -1,   107,   108,    28,    29,    30,    31,    -1,
  2419.     33,    -1,    35,    -1,    37,    38,    -1,    40,    41,    -1,
  2420.     -1,    44,    45,    46,    -1,    -1,    -1,    50,    -1,    -1,
  2421.     -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,    61,    -1,
  2422.     -1,    -1,    -1,    -1,    -1,    -1,    69,    70,    71,    -1,
  2423.     -1,    -1,    75,    76,    -1,    -1,    -1,    -1,    -1,     1,
  2424.     83,     3,     4,     5,    -1,     7,     8,     9,    10,    -1,
  2425.     12,    13,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2426.     -1,    -1,    -1,   106,   107,   108,    28,    29,    30,    31,
  2427.     -1,    33,    -1,    35,    -1,    37,    38,    -1,    40,    41,
  2428.     -1,    -1,    44,    45,    46,    -1,    -1,    -1,    50,    -1,
  2429.     -1,    -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,    61,
  2430.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,    70,    71,
  2431.     -1,    -1,    -1,    75,    76,    -1,    -1,    -1,    -1,    -1,
  2432.     -1,    83,    84,     1,    -1,     3,     4,     5,    -1,     7,
  2433.      8,     9,    10,    95,    12,    13,    -1,    -1,    -1,    -1,
  2434.     -1,    -1,    -1,    -1,    -1,   107,   108,    -1,    -1,    -1,
  2435.     28,    29,    30,    31,    -1,    33,    -1,    35,    -1,    37,
  2436.     38,    -1,    40,    41,    -1,    -1,    44,    45,    46,    -1,
  2437.     -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2438.     58,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    -1,
  2439.     -1,    69,    70,    71,    -1,    -1,    -1,    75,    76,    -1,
  2440.     -1,    -1,    -1,    -1,     1,    83,     3,     4,     5,    -1,
  2441.      7,     8,     9,    10,    -1,    12,    13,    95,    -1,    -1,
  2442.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,
  2443.    108,    28,    29,    30,    31,    -1,    33,    -1,    35,    -1,
  2444.     37,    38,    -1,    40,    41,    -1,    -1,    44,    45,    46,
  2445.     -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,
  2446.     -1,    58,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,
  2447.     -1,    -1,    69,    70,    71,    -1,    -1,    -1,    75,    76,
  2448.     -1,    -1,    -1,    -1,    -1,     1,    83,     3,     4,     5,
  2449.     -1,     7,     8,     9,    10,    -1,    12,    13,    95,    -1,
  2450.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2451.    107,   108,    28,    29,    30,    31,    -1,    33,    -1,    35,
  2452.     -1,    37,    38,    -1,    40,    41,    -1,    -1,    44,    45,
  2453.     46,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,
  2454.     -1,    -1,    58,    -1,    -1,    61,    -1,    -1,    -1,    -1,
  2455.     -1,    -1,    -1,    69,    70,    71,    -1,    -1,    -1,    75,
  2456.     76,    -1,    -1,    -1,    -1,    -1,     1,    83,     3,     4,
  2457.      5,    -1,     7,     8,     9,    10,    -1,    12,    13,    95,
  2458.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2459.     -1,   107,   108,    28,    29,    30,    31,    -1,    33,    -1,
  2460.     35,    -1,    37,    38,    -1,    40,    41,    -1,    -1,    44,
  2461.     45,    46,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2462.     -1,    -1,    -1,    58,    -1,    -1,    61,    -1,    -1,    -1,
  2463.     -1,    -1,    -1,    -1,    69,    70,    71,    -1,    -1,    -1,
  2464.     75,    76,    -1,    -1,    -1,    -1,    -1,     1,    83,     3,
  2465.      4,     5,    -1,     7,     8,     9,    10,    -1,    12,    13,
  2466.     95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2467.    105,    -1,   107,   108,    28,    29,    30,    31,    -1,    33,
  2468.     -1,    35,    -1,    37,    38,    -1,    40,    41,    -1,    -1,
  2469.     44,    45,    46,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2470.     -1,    -1,    -1,    -1,    58,    -1,    -1,    61,    -1,    -1,
  2471.     -1,    -1,    -1,    -1,    -1,    69,    70,    71,    -1,    -1,
  2472.     -1,    75,    76,    -1,    -1,    -1,    -1,    -1,     1,    83,
  2473.      3,     4,     5,    -1,     7,     8,     9,    10,    -1,    12,
  2474.     13,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2475.    104,    -1,    -1,   107,   108,    28,    29,    30,    31,    -1,
  2476.     33,    -1,    35,    -1,    37,    38,    -1,    40,    41,    -1,
  2477.     -1,    44,    45,    46,    -1,    -1,    -1,    -1,    -1,    -1,
  2478.     -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,    61,    -1,
  2479.     -1,    -1,    -1,    -1,    -1,    -1,    69,    70,    71,    -1,
  2480.     -1,    -1,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,
  2481.     83,     3,     4,     5,    -1,     7,     8,     9,    10,    -1,
  2482.     12,    13,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2483.     -1,    -1,    -1,    -1,   107,   108,    28,    29,    30,    31,
  2484.     -1,    33,    -1,    35,    -1,    37,    -1,    -1,    40,    41,
  2485.     -1,    -1,    44,    45,    46,    -1,    -1,    -1,    -1,    -1,
  2486.     -1,    -1,    -1,    -1,    -1,    -1,    58,    -1,     1,    61,
  2487.      3,     4,     5,     6,     7,     8,    -1,    69,    70,    71,
  2488.     13,    -1,    -1,    75,    76,    -1,    -1,    -1,    -1,    -1,
  2489.     -1,    83,    -1,    26,    27,    28,    -1,    -1,    -1,    -1,
  2490.     -1,    -1,    35,    95,    -1,    -1,    39,    -1,    41,    -1,
  2491.     43,    -1,    -1,    46,    -1,   107,   108,   109,    -1,    -1,
  2492.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    -1,
  2493.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,
  2494.     -1,     1,    -1,     3,     4,     5,     6,     7,     8,    -1,
  2495.     83,    -1,    -1,    13,    -1,    -1,    -1,    -1,    -1,    -1,
  2496.     -1,    -1,    95,    96,    97,    -1,    26,    27,    28,    -1,
  2497.     -1,    -1,   105,   106,   107,    35,    -1,    -1,    -1,    39,
  2498.     -1,    41,    -1,    43,    -1,    -1,    46,    52,    53,    54,
  2499.     -1,    -1,    57,    58,    59,    60,    61,    62,    63,    64,
  2500.     65,    61,    67,    68,    69,    70,    71,    72,    73,    -1,
  2501.     -1,    71,    -1,    -1,     1,    -1,     3,     4,     5,     6,
  2502.      7,     8,    -1,    83,    -1,    -1,    13,    -1,    -1,    -1,
  2503.     -1,    -1,    -1,    -1,    -1,    95,    96,    97,    -1,    -1,
  2504.     -1,    28,    -1,    -1,    -1,   105,    -1,   107,    35,    36,
  2505.     -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,     1,    46,
  2506.      3,     4,     5,     6,     7,     8,    -1,    -1,    55,    -1,
  2507.     13,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,
  2508.     -1,    -1,    -1,    -1,    71,    28,    -1,    -1,    -1,    -1,
  2509.     -1,    -1,    35,    -1,    -1,    -1,    83,    -1,    41,    -1,
  2510.     -1,    -1,    -1,    46,    -1,    -1,    -1,    -1,    95,     1,
  2511.     -1,     3,     4,     5,     6,     7,     8,    -1,    61,   106,
  2512.    107,    13,    -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,
  2513.     -1,    -1,    -1,    -1,    -1,    -1,    28,    -1,    -1,    -1,
  2514.     83,    -1,    -1,    35,    -1,    -1,    -1,    -1,    -1,    41,
  2515.     -1,    -1,    95,    96,    46,    -1,    -1,    -1,    -1,    -1,
  2516.     -1,    -1,   105,    -1,   107,    -1,    -1,    -1,    -1,    61,
  2517.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,
  2518.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2519.     -1,    83,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2520.     -1,    -1,    -1,    95,    -1,    -1,    -1,     3,     4,     5,
  2521.      6,     7,     8,     9,    10,   107,    12,    13,    14,    -1,
  2522.     16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
  2523.     26,    27,    28,    29,    30,    31,    -1,    33,    -1,    35,
  2524.     -1,    37,    -1,    -1,    40,    41,    -1,    -1,    44,    45,
  2525.     46,    -1,    -1,    49,    50,    -1,    -1,    -1,    -1,    -1,
  2526.     -1,    -1,    58,    -1,    -1,    61,    -1,    -1,    -1,    -1,
  2527.     -1,    -1,    -1,    69,    70,    71,    -1,    -1,    -1,    75,
  2528.     76,    -1,    -1,    -1,    -1,    -1,    -1,    83,    -1,    85,
  2529.     -1,    -1,    88,    -1,    -1,    91,    92,    93,    -1,    95,
  2530.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   105,
  2531.    106,   107,   108,     3,     4,     5,     6,     7,     8,     9,
  2532.     10,    -1,    12,    13,    14,    -1,    16,    17,    18,    19,
  2533.     20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
  2534.     30,    31,    -1,    33,    -1,    35,    -1,    37,    -1,    -1,
  2535.     40,    41,    -1,    -1,    44,    45,    46,    -1,    -1,    49,
  2536.     50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,    -1,
  2537.     -1,    61,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,
  2538.     70,    71,    -1,    -1,    -1,    75,    76,    -1,    -1,    -1,
  2539.     -1,    -1,    -1,    83,    -1,    85,    -1,    -1,    88,    -1,
  2540.     -1,    91,    92,    93,    -1,    95,    -1,    -1,    -1,    -1,
  2541.     -1,    -1,    -1,    -1,    -1,   105,    -1,   107,   108,     3,
  2542.      4,     5,     6,     7,     8,     9,    10,    -1,    12,    13,
  2543.     14,    -1,    16,    17,    18,    19,    20,    21,    22,    23,
  2544.     24,    25,    26,    27,    28,    29,    30,    31,    -1,    33,
  2545.     -1,    35,    -1,    37,    -1,    -1,    40,    41,    -1,    -1,
  2546.     44,    45,    46,    -1,    -1,    49,    50,    -1,    -1,    -1,
  2547.     -1,    -1,    -1,    -1,    58,    -1,    -1,    61,    -1,    -1,
  2548.     -1,    -1,    -1,    -1,    -1,    69,    70,    71,    -1,    -1,
  2549.     -1,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,
  2550.     -1,    85,    -1,    -1,    88,    -1,    -1,    91,    92,    93,
  2551.     -1,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2552.     -1,   105,    -1,   107,   108,     3,     4,     5,     6,     7,
  2553.      8,     9,    10,    -1,    12,    13,    14,    -1,    16,    17,
  2554.     18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
  2555.     28,    29,    30,    31,    -1,    33,    -1,    35,    -1,    37,
  2556.     -1,    -1,    40,    41,    -1,    -1,    44,    45,    46,    -1,
  2557.     -1,    49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2558.     58,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    -1,
  2559.     -1,    69,    70,    71,    -1,    -1,    -1,    75,    76,    -1,
  2560.     -1,    -1,    -1,    -1,    -1,    83,    -1,    85,    -1,    -1,
  2561.     88,    -1,    -1,    91,    92,    93,    -1,    95,    -1,    -1,
  2562.     -1,    -1,    -1,    -1,    -1,    -1,    -1,   105,    -1,   107,
  2563.    108,     3,     4,     5,    -1,     7,     8,     9,    10,    -1,
  2564.     12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2565.     -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
  2566.     -1,    33,    -1,    35,    -1,    37,    -1,    -1,    40,    41,
  2567.     -1,    -1,    44,    45,    46,    -1,    -1,    -1,    -1,    -1,
  2568.     -1,    -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,    61,
  2569.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,    70,    71,
  2570.     -1,    -1,    -1,    75,    76,    -1,    -1,    -1,    -1,    -1,
  2571.     -1,    83,    84,    -1,    -1,     3,     4,     5,    -1,     7,
  2572.      8,     9,    10,    95,    12,    13,    -1,    -1,    -1,    -1,
  2573.     -1,    -1,    -1,    -1,    -1,   107,   108,    -1,    -1,    -1,
  2574.     28,    29,    30,    31,    -1,    33,    -1,    35,    -1,    37,
  2575.     -1,    -1,    40,    41,    -1,    -1,    44,    45,    46,    -1,
  2576.     -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2577.     58,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    -1,
  2578.     -1,    69,    70,    71,    -1,    -1,    -1,    75,    76,    -1,
  2579.     -1,    -1,    -1,    -1,    -1,    83,     3,     4,     5,    -1,
  2580.      7,     8,     9,    10,    -1,    12,    13,    95,    -1,    -1,
  2581.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,
  2582.    108,    28,    29,    30,    31,    -1,    33,    -1,    35,    -1,
  2583.     37,    -1,    -1,    40,    41,    -1,    -1,    44,    45,    46,
  2584.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2585.     -1,    58,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,
  2586.     -1,    -1,    69,    70,    71,    -1,    -1,    -1,    75,    76,
  2587.     -1,    -1,    -1,    -1,    -1,    -1,    83,     3,     4,     5,
  2588.     -1,     7,     8,     9,    10,    -1,    12,    13,    95,    -1,
  2589.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   105,    -1,
  2590.    107,   108,    28,    29,    30,    31,    -1,    33,    -1,    35,
  2591.     -1,    37,    -1,    -1,    40,    41,    -1,    -1,    44,    45,
  2592.     46,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2593.     -1,    -1,    58,    -1,    -1,    61,    -1,    -1,    -1,    -1,
  2594.     -1,    -1,    -1,    69,    70,    71,    -1,    -1,    -1,    75,
  2595.     76,    -1,    -1,    -1,    -1,    -1,    -1,    83,     3,     4,
  2596.      5,    -1,     7,     8,     9,    10,    -1,    12,    13,    95,
  2597.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   105,
  2598.     -1,   107,   108,    28,    29,    30,    31,    -1,    33,    -1,
  2599.     35,    -1,    37,    -1,    -1,    40,    41,    -1,    -1,    44,
  2600.     45,    46,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2601.     -1,    -1,    -1,    58,    -1,    -1,    61,    -1,    -1,    -1,
  2602.     -1,    -1,    -1,    -1,    69,    70,    71,    -1,    -1,    -1,
  2603.     75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,     3,
  2604.      4,     5,    -1,     7,     8,     9,    10,    -1,    12,    13,
  2605.     95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2606.     -1,    -1,   107,   108,    28,    29,    30,    31,    -1,    33,
  2607.     -1,    35,    -1,    37,    -1,    -1,    40,    41,    -1,    -1,
  2608.     44,    45,    46,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2609.     -1,    -1,    -1,    -1,    58,    -1,    -1,    61,    -1,    -1,
  2610.     -1,    -1,    -1,    -1,    -1,    69,    70,    71,    -1,    -1,
  2611.     -1,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,
  2612.      3,     4,     5,    -1,     7,     8,     9,    10,    -1,    12,
  2613.     13,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2614.     -1,    -1,    -1,   107,   108,    28,    29,    30,    31,    -1,
  2615.     33,    -1,    35,    -1,    37,    -1,    -1,    40,    41,    -1,
  2616.     -1,    44,    45,    46,     3,     4,     5,    -1,     7,     8,
  2617.      9,    10,    -1,    12,    13,    58,    -1,    -1,    61,    -1,
  2618.     -1,    -1,    -1,    -1,    -1,    -1,    69,    70,    71,    28,
  2619.     29,    -1,    75,    76,    33,    -1,    35,    -1,    37,    -1,
  2620.     83,    40,    41,    -1,    -1,    44,    45,    46,    -1,    -1,
  2621.     -1,    -1,    95,    -1,    -1,    -1,    -1,    -1,    -1,    58,
  2622.     -1,    -1,    61,    -1,   107,   108,    -1,    -1,    -1,    -1,
  2623.     69,    70,    71,    -1,    -1,    -1,    75,    76,    -1,    -1,
  2624.     -1,     3,     4,     5,    83,     7,     8,     9,    10,    -1,
  2625.     12,    13,    -1,    -1,    -1,    -1,    95,    -1,    -1,    -1,
  2626.     -1,    -1,    -1,    -1,    -1,    -1,    28,    29,   107,   108,
  2627.     -1,    33,    -1,    35,    -1,    37,    -1,    -1,    40,    41,
  2628.     -1,    -1,    44,    45,    46,     3,     4,     5,     6,     7,
  2629.      8,    -1,    -1,    11,    -1,    13,    58,    -1,    -1,    61,
  2630.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,    70,    71,
  2631.     28,    -1,    -1,    75,    76,    -1,    -1,    35,    -1,    -1,
  2632.     -1,    83,    -1,    41,    42,    -1,    -1,    -1,    46,    47,
  2633.     -1,    -1,    -1,    95,    -1,    -1,    -1,    -1,    -1,    -1,
  2634.     -1,    -1,    -1,    61,    -1,   107,   108,     3,     4,     5,
  2635.      6,     7,     8,    71,    -1,    11,    -1,    13,    -1,    -1,
  2636.     78,    -1,    -1,    -1,    -1,    83,    84,    -1,    -1,    -1,
  2637.     -1,    -1,    28,    -1,    -1,    -1,    -1,    95,    -1,    35,
  2638.     -1,    -1,    -1,    -1,    -1,    41,    42,    -1,    -1,   107,
  2639.     46,     3,     4,     5,     6,     7,     8,    -1,    -1,    -1,
  2640.     -1,    13,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,
  2641.     -1,    -1,    -1,    -1,    -1,    71,    28,    -1,    -1,    -1,
  2642.     -1,    -1,    78,    35,    -1,    -1,    -1,    83,    84,    41,
  2643.     42,    -1,    -1,    -1,    46,    47,    -1,    -1,    94,    95,
  2644.     -1,    -1,    -1,    55,    -1,    -1,    -1,    -1,    -1,    61,
  2645.     -1,   107,    -1,     3,     4,     5,     6,     7,     8,    71,
  2646.     -1,    -1,    -1,    13,    -1,    -1,    78,    -1,    -1,    -1,
  2647.     -1,    83,    -1,    -1,    -1,    -1,    -1,    -1,    28,    -1,
  2648.     -1,    -1,    -1,    95,    -1,    35,    -1,    -1,    -1,    -1,
  2649.     -1,    41,    -1,    -1,    -1,   107,    46,    47,     3,     4,
  2650.      5,     6,     7,     8,    -1,    -1,    11,    -1,    13,    -1,
  2651.     -1,    61,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2652.     -1,    71,    -1,    28,    -1,    -1,    -1,    -1,    78,    -1,
  2653.     35,    -1,    -1,    83,    -1,    -1,    41,    -1,    -1,    -1,
  2654.     -1,    46,    -1,    -1,    -1,    95,    -1,    -1,    -1,     3,
  2655.      4,     5,     6,     7,     8,   105,    61,   107,    -1,    13,
  2656.     -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,
  2657.     -1,    -1,    -1,    78,    28,    -1,    -1,    -1,    83,    -1,
  2658.     -1,    35,    -1,    -1,    -1,    -1,    -1,    41,    -1,    94,
  2659.     95,    -1,    46,    47,     3,     4,     5,     6,     7,     8,
  2660.     -1,    -1,   107,    -1,    13,    -1,    -1,    61,     3,     4,
  2661.      5,     6,     7,     8,    -1,    -1,    11,    71,    13,    28,
  2662.     -1,    -1,    -1,    -1,    78,    -1,    35,    -1,    -1,    83,
  2663.     -1,    -1,    41,    28,    -1,    -1,    -1,    46,    47,    -1,
  2664.     35,    95,    -1,    -1,    -1,    -1,    -1,    42,    -1,    -1,
  2665.     -1,   105,    61,   107,    -1,    -1,    -1,    -1,    -1,    -1,
  2666.     -1,    -1,    71,    -1,    -1,    -1,    61,    -1,    -1,    78,
  2667.     -1,    -1,    -1,    -1,    83,    -1,    71,    -1,    -1,    -1,
  2668.     -1,    -1,    -1,    78,    -1,    -1,    95,    -1,    83,    84,
  2669.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,    94,
  2670.     95,    52,    53,    54,    -1,    -1,    57,    58,    59,    60,
  2671.     61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
  2672.     71,    72,    73,    51,    52,    53,    54,    -1,    -1,    57,
  2673.     58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
  2674.     68,    69,    70,    71,    72,    73,    -1,    -1,    -1,    -1,
  2675.     -1,    -1,    -1,    -1,   105,   106,    52,    53,    54,    55,
  2676.     56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
  2677.     66,    67,    68,    69,    70,    71,    72,    73,    52,    53,
  2678.     54,    55,    -1,    57,    58,    59,    60,    61,    62,    63,
  2679.     64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
  2680.     52,    53,    54,    55,    -1,    57,    58,    59,    60,    61,
  2681.     62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
  2682.     72,    73,    52,    53,    54,    -1,    -1,    57,    58,    59,
  2683.     60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
  2684.     70,    71,    72,    73,    54,    -1,    -1,    57,    58,    59,
  2685.     60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
  2686.     70,    71,    72,    73,    58,    59,    60,    61,    62,    63,
  2687.     64,    65,    66,    67,    68,    69,    70,    71,    72,    73
  2688. };
  2689. /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
  2690. #line 3 "/usr/local/Install/supported/gnu/bison/sparc-sun-sunos4.1/lib/bison.simple"
  2691.  
  2692. /* Skeleton output parser for bison,
  2693.    Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
  2694.  
  2695.    This program is free software; you can redistribute it and/or modify
  2696.    it under the terms of the GNU General Public License as published by
  2697.    the Free Software Foundation; either version 1, or (at your option)
  2698.    any later version.
  2699.  
  2700.    This program is distributed in the hope that it will be useful,
  2701.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  2702.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2703.    GNU General Public License for more details.
  2704.  
  2705.    You should have received a copy of the GNU General Public License
  2706.    along with this program; if not, write to the Free Software
  2707.    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
  2708.  
  2709.  
  2710. #ifndef alloca
  2711. #ifdef __GNUC__
  2712. #define alloca __builtin_alloca
  2713. #else /* not GNU C.  */
  2714. #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
  2715. #include <alloca.h>
  2716. #else /* not sparc */
  2717. #if defined (MSDOS) && !defined (__TURBOC__)
  2718. #include <malloc.h>
  2719. #else /* not MSDOS, or __TURBOC__ */
  2720. #if defined(_AIX)
  2721. #include <malloc.h>
  2722.  #pragma alloca
  2723. #else /* not MSDOS, __TURBOC__, or _AIX */
  2724. #ifdef __hpux
  2725. #ifdef __cplusplus
  2726. extern "C" {
  2727. void *alloca (unsigned int);
  2728. };
  2729. #else /* not __cplusplus */
  2730. void *alloca (unsigned int);
  2731. #endif /* not __cplusplus */
  2732. #endif /* __hpux */
  2733. #endif /* not _AIX */
  2734. #endif /* not MSDOS, or __TURBOC__ */
  2735. #endif /* not sparc.  */
  2736. #endif /* not GNU C.  */
  2737. #endif /* alloca not defined.  */
  2738.  
  2739. /* This is the parser code that is written into each bison parser
  2740.   when the %semantic_parser declaration is not specified in the grammar.
  2741.   It was written by Richard Stallman by simplifying the hairy parser
  2742.   used when %semantic_parser is specified.  */
  2743.  
  2744. /* Note: there must be only one dollar sign in this file.
  2745.    It is replaced by the list of actions, each action
  2746.    as one case of the switch.  */
  2747.  
  2748. #define yyerrok        (yyerrstatus = 0)
  2749. #define yyclearin    (yychar = YYEMPTY)
  2750. #define YYEMPTY        -2
  2751. #define YYEOF        0
  2752. #define YYACCEPT    return(0)
  2753. #define YYABORT     return(1)
  2754. #define YYERROR        goto yyerrlab1
  2755. /* Like YYERROR except do call yyerror.
  2756.    This remains here temporarily to ease the
  2757.    transition to the new meaning of YYERROR, for GCC.
  2758.    Once GCC version 2 has supplanted version 1, this can go.  */
  2759. #define YYFAIL        goto yyerrlab
  2760. #define YYRECOVERING()  (!!yyerrstatus)
  2761. #define YYBACKUP(token, value) \
  2762. do                                \
  2763.   if (yychar == YYEMPTY && yylen == 1)                \
  2764.     { yychar = (token), yylval = (value);            \
  2765.       yychar1 = YYTRANSLATE (yychar);                \
  2766.       YYPOPSTACK;                        \
  2767.       goto yybackup;                        \
  2768.     }                                \
  2769.   else                                \
  2770.     { yyerror ("syntax error: cannot back up"); YYERROR; }    \
  2771. while (0)
  2772.  
  2773. #define YYTERROR    1
  2774. #define YYERRCODE    256
  2775.  
  2776. #ifndef YYPURE
  2777. #define YYLEX        yylex()
  2778. #endif
  2779.  
  2780. #ifdef YYPURE
  2781. #ifdef YYLSP_NEEDED
  2782. #define YYLEX        yylex(&yylval, &yylloc)
  2783. #else
  2784. #define YYLEX        yylex(&yylval)
  2785. #endif
  2786. #endif
  2787.  
  2788. /* If nonreentrant, generate the variables here */
  2789.  
  2790. #ifndef YYPURE
  2791.  
  2792. int    yychar;            /*  the lookahead symbol        */
  2793. YYSTYPE    yylval;            /*  the semantic value of the        */
  2794.                 /*  lookahead symbol            */
  2795.  
  2796. #ifdef YYLSP_NEEDED
  2797. YYLTYPE yylloc;            /*  location data for the lookahead    */
  2798.                 /*  symbol                */
  2799. #endif
  2800.  
  2801. int yynerrs;            /*  number of parse errors so far       */
  2802. #endif  /* not YYPURE */
  2803.  
  2804. #if YYDEBUG != 0
  2805. int yydebug;            /*  nonzero means print parse trace    */
  2806. /* Since this is uninitialized, it does not stop multiple parsers
  2807.    from coexisting.  */
  2808. #endif
  2809.  
  2810. /*  YYINITDEPTH indicates the initial size of the parser's stacks    */
  2811.  
  2812. #ifndef    YYINITDEPTH
  2813. #define YYINITDEPTH 200
  2814. #endif
  2815.  
  2816. /*  YYMAXDEPTH is the maximum size the stacks can grow to
  2817.     (effective only if the built-in stack extension method is used).  */
  2818.  
  2819. #if YYMAXDEPTH == 0
  2820. #undef YYMAXDEPTH
  2821. #endif
  2822.  
  2823. #ifndef YYMAXDEPTH
  2824. #define YYMAXDEPTH 10000
  2825. #endif
  2826.  
  2827. /* Prevent warning if -Wstrict-prototypes.  */
  2828. #ifdef __GNUC__
  2829. int yyparse (void);
  2830. #endif
  2831.  
  2832. #if __GNUC__ > 1        /* GNU C and GNU C++ define this.  */
  2833. #define __yy_bcopy(FROM,TO,COUNT)    __builtin_memcpy(TO,FROM,COUNT)
  2834. #else                /* not GNU C or C++ */
  2835. #ifndef __cplusplus
  2836.  
  2837. /* This is the most reliable way to avoid incompatibilities
  2838.    in available built-in functions on various systems.  */
  2839. static void
  2840. __yy_bcopy (from, to, count)
  2841.      char *from;
  2842.      char *to;
  2843.      int count;
  2844. {
  2845.   register char *f = from;
  2846.   register char *t = to;
  2847.   register int i = count;
  2848.  
  2849.   while (i-- > 0)
  2850.     *t++ = *f++;
  2851. }
  2852.  
  2853. #else /* __cplusplus */
  2854.  
  2855. /* This is the most reliable way to avoid incompatibilities
  2856.    in available built-in functions on various systems.  */
  2857. static void
  2858. __yy_bcopy (char *from, char *to, int count)
  2859. {
  2860.   register char *f = from;
  2861.   register char *t = to;
  2862.   register int i = count;
  2863.  
  2864.   while (i-- > 0)
  2865.     *t++ = *f++;
  2866. }
  2867.  
  2868. #endif
  2869. #endif
  2870.  
  2871. #line 184 "/usr/local/Install/supported/gnu/bison/sparc-sun-sunos4.1/lib/bison.simple"
  2872. int
  2873. yyparse()
  2874. {
  2875.   register int yystate;
  2876.   register int yyn;
  2877.   register short *yyssp;
  2878.   register YYSTYPE *yyvsp;
  2879.   int yyerrstatus;    /*  number of tokens to shift before error messages enabled */
  2880.   int yychar1;        /*  lookahead token as an internal (translated) token number */
  2881.  
  2882.   short    yyssa[YYINITDEPTH];    /*  the state stack            */
  2883.   YYSTYPE yyvsa[YYINITDEPTH];    /*  the semantic value stack        */
  2884.  
  2885.   short *yyss = yyssa;        /*  refer to the stacks thru separate pointers */
  2886.   YYSTYPE *yyvs = yyvsa;    /*  to allow yyoverflow to reallocate them elsewhere */
  2887.  
  2888. #ifdef YYLSP_NEEDED
  2889.   YYLTYPE yylsa[YYINITDEPTH];    /*  the location stack            */
  2890.   YYLTYPE *yyls = yylsa;
  2891.   YYLTYPE *yylsp;
  2892.  
  2893. #define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
  2894. #else
  2895. #define YYPOPSTACK   (yyvsp--, yyssp--)
  2896. #endif
  2897.  
  2898.   int yystacksize = YYINITDEPTH;
  2899.  
  2900. #ifdef YYPURE
  2901.   int yychar;
  2902.   YYSTYPE yylval;
  2903.   int yynerrs;
  2904. #ifdef YYLSP_NEEDED
  2905.   YYLTYPE yylloc;
  2906. #endif
  2907. #endif
  2908.  
  2909.   YYSTYPE yyval;        /*  the variable used to return        */
  2910.                 /*  semantic values from the action    */
  2911.                 /*  routines                */
  2912.  
  2913.   int yylen;
  2914.  
  2915. #if YYDEBUG != 0
  2916.   if (yydebug)
  2917.     fprintf(stderr, "Starting parse\n");
  2918. #endif
  2919.  
  2920.   yystate = 0;
  2921.   yyerrstatus = 0;
  2922.   yynerrs = 0;
  2923.   yychar = YYEMPTY;        /* Cause a token to be read.  */
  2924.  
  2925.   /* Initialize stack pointers.
  2926.      Waste one element of value and location stack
  2927.      so that they stay on the same level as the state stack.
  2928.      The wasted elements are never initialized.  */
  2929.  
  2930.   yyssp = yyss - 1;
  2931.   yyvsp = yyvs;
  2932. #ifdef YYLSP_NEEDED
  2933.   yylsp = yyls;
  2934. #endif
  2935.  
  2936. /* Push a new state, which is found in  yystate  .  */
  2937. /* In all cases, when you get here, the value and location stacks
  2938.    have just been pushed. so pushing a state here evens the stacks.  */
  2939. yynewstate:
  2940.  
  2941.   *++yyssp = yystate;
  2942.  
  2943.   if (yyssp >= yyss + yystacksize - 1)
  2944.     {
  2945.       /* Give user a chance to reallocate the stack */
  2946.       /* Use copies of these so that the &'s don't force the real ones into memory. */
  2947.       YYSTYPE *yyvs1 = yyvs;
  2948.       short *yyss1 = yyss;
  2949. #ifdef YYLSP_NEEDED
  2950.       YYLTYPE *yyls1 = yyls;
  2951. #endif
  2952.  
  2953.       /* Get the current used size of the three stacks, in elements.  */
  2954.       int size = yyssp - yyss + 1;
  2955.  
  2956. #ifdef yyoverflow
  2957.       /* Each stack pointer address is followed by the size of
  2958.      the data in use in that stack, in bytes.  */
  2959.       yyoverflow("parser stack overflow",
  2960.          &yyss1, size * sizeof (*yyssp),
  2961.          &yyvs1, size * sizeof (*yyvsp),
  2962. #ifdef YYLSP_NEEDED
  2963.          &yyls1, size * sizeof (*yylsp),
  2964. #endif
  2965.          &yystacksize);
  2966.  
  2967.       yyss = yyss1; yyvs = yyvs1;
  2968. #ifdef YYLSP_NEEDED
  2969.       yyls = yyls1;
  2970. #endif
  2971. #else /* no yyoverflow */
  2972.       /* Extend the stack our own way.  */
  2973.       if (yystacksize >= YYMAXDEPTH)
  2974.     {
  2975.       yyerror("parser stack overflow");
  2976.       return 2;
  2977.     }
  2978.       yystacksize *= 2;
  2979.       if (yystacksize > YYMAXDEPTH)
  2980.     yystacksize = YYMAXDEPTH;
  2981.       yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
  2982.       __yy_bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
  2983.       yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
  2984.       __yy_bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
  2985. #ifdef YYLSP_NEEDED
  2986.       yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
  2987.       __yy_bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
  2988. #endif
  2989. #endif /* no yyoverflow */
  2990.  
  2991.       yyssp = yyss + size - 1;
  2992.       yyvsp = yyvs + size - 1;
  2993. #ifdef YYLSP_NEEDED
  2994.       yylsp = yyls + size - 1;
  2995. #endif
  2996.  
  2997. #if YYDEBUG != 0
  2998.       if (yydebug)
  2999.     fprintf(stderr, "Stack size increased to %d\n", yystacksize);
  3000. #endif
  3001.  
  3002.       if (yyssp >= yyss + yystacksize - 1)
  3003.     YYABORT;
  3004.     }
  3005.  
  3006. #if YYDEBUG != 0
  3007.   if (yydebug)
  3008.     fprintf(stderr, "Entering state %d\n", yystate);
  3009. #endif
  3010.  
  3011.   goto yybackup;
  3012.  yybackup:
  3013.  
  3014. /* Do appropriate processing given the current state.  */
  3015. /* Read a lookahead token if we need one and don't already have one.  */
  3016. /* yyresume: */
  3017.  
  3018.   /* First try to decide what to do without reference to lookahead token.  */
  3019.  
  3020.   yyn = yypact[yystate];
  3021.   if (yyn == YYFLAG)
  3022.     goto yydefault;
  3023.  
  3024.   /* Not known => get a lookahead token if don't already have one.  */
  3025.  
  3026.   /* yychar is either YYEMPTY or YYEOF
  3027.      or a valid token in external form.  */
  3028.  
  3029.   if (yychar == YYEMPTY)
  3030.     {
  3031. #if YYDEBUG != 0
  3032.       if (yydebug)
  3033.     fprintf(stderr, "Reading a token: ");
  3034. #endif
  3035.       yychar = YYLEX;
  3036.     }
  3037.  
  3038.   /* Convert token to internal form (in yychar1) for indexing tables with */
  3039.  
  3040.   if (yychar <= 0)        /* This means end of input. */
  3041.     {
  3042.       yychar1 = 0;
  3043.       yychar = YYEOF;        /* Don't call YYLEX any more */
  3044.  
  3045. #if YYDEBUG != 0
  3046.       if (yydebug)
  3047.     fprintf(stderr, "Now at end of input.\n");
  3048. #endif
  3049.     }
  3050.   else
  3051.     {
  3052.       yychar1 = YYTRANSLATE(yychar);
  3053.  
  3054. #if YYDEBUG != 0
  3055.       if (yydebug)
  3056.     {
  3057.       fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
  3058.       /* Give the individual parser a way to print the precise meaning
  3059.          of a token, for further debugging info.  */
  3060. #ifdef YYPRINT
  3061.       YYPRINT (stderr, yychar, yylval);
  3062. #endif
  3063.       fprintf (stderr, ")\n");
  3064.     }
  3065. #endif
  3066.     }
  3067.  
  3068.   yyn += yychar1;
  3069.   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
  3070.     goto yydefault;
  3071.  
  3072.   yyn = yytable[yyn];
  3073.  
  3074.   /* yyn is what to do for this token type in this state.
  3075.      Negative => reduce, -yyn is rule number.
  3076.      Positive => shift, yyn is new state.
  3077.        New state is final state => don't bother to shift,
  3078.        just return success.
  3079.      0, or most negative number => error.  */
  3080.  
  3081.   if (yyn < 0)
  3082.     {
  3083.       if (yyn == YYFLAG)
  3084.     goto yyerrlab;
  3085.       yyn = -yyn;
  3086.       goto yyreduce;
  3087.     }
  3088.   else if (yyn == 0)
  3089.     goto yyerrlab;
  3090.  
  3091.   if (yyn == YYFINAL)
  3092.     YYACCEPT;
  3093.  
  3094.   /* Shift the lookahead token.  */
  3095.  
  3096. #if YYDEBUG != 0
  3097.   if (yydebug)
  3098.     fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
  3099. #endif
  3100.  
  3101.   /* Discard the token being shifted unless it is eof.  */
  3102.   if (yychar != YYEOF)
  3103.     yychar = YYEMPTY;
  3104.  
  3105.   *++yyvsp = yylval;
  3106. #ifdef YYLSP_NEEDED
  3107.   *++yylsp = yylloc;
  3108. #endif
  3109.  
  3110.   /* count tokens shifted since error; after three, turn off error status.  */
  3111.   if (yyerrstatus) yyerrstatus--;
  3112.  
  3113.   yystate = yyn;
  3114.   goto yynewstate;
  3115.  
  3116. /* Do the default action for the current state.  */
  3117. yydefault:
  3118.  
  3119.   yyn = yydefact[yystate];
  3120.   if (yyn == 0)
  3121.     goto yyerrlab;
  3122.  
  3123. /* Do a reduction.  yyn is the number of a rule to reduce with.  */
  3124. yyreduce:
  3125.   yylen = yyr2[yyn];
  3126.   yyval = yyvsp[1-yylen]; /* implement default value of the action */
  3127.  
  3128. #if YYDEBUG != 0
  3129.   if (yydebug)
  3130.     {
  3131.       int i;
  3132.  
  3133.       fprintf (stderr, "Reducing via rule %d (line %d), ",
  3134.            yyn, yyrline[yyn]);
  3135.  
  3136.       /* Print the symbols being reduced, and their result.  */
  3137.       for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
  3138.     fprintf (stderr, "%s ", yytname[yyrhs[i]]);
  3139.       fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
  3140.     }
  3141. #endif
  3142.  
  3143.  
  3144.   switch (yyn) {
  3145.  
  3146. case 2:
  3147. #line 287 "cp-parse.y"
  3148. {
  3149.           /* In case there were missing closebraces,
  3150.              get us back to the global binding level.  */
  3151.           while (! global_bindings_p ())
  3152.             poplevel (0, 0, 0);
  3153.           finish_file ();
  3154.         ;
  3155.     break;}
  3156. case 3:
  3157. #line 301 "cp-parse.y"
  3158. { yyval.ttype = NULL_TREE; ;
  3159.     break;}
  3160. case 4:
  3161. #line 302 "cp-parse.y"
  3162. {yyval.ttype = NULL_TREE; ;
  3163.     break;}
  3164. case 5:
  3165. #line 304 "cp-parse.y"
  3166. {yyval.ttype = NULL_TREE; ;
  3167.     break;}
  3168. case 6:
  3169. #line 308 "cp-parse.y"
  3170. { have_extern_spec = 1;
  3171.           used_extern_spec = 0;
  3172.           yyval.ttype = NULL_TREE; ;
  3173.     break;}
  3174. case 7:
  3175. #line 313 "cp-parse.y"
  3176. { have_extern_spec = 0; ;
  3177.     break;}
  3178. case 8:
  3179. #line 317 "cp-parse.y"
  3180. { if (pedantic)
  3181.               pedwarn ("ANSI C++ forbids use of `asm' keyword"); ;
  3182.     break;}
  3183. case 10:
  3184. #line 324 "cp-parse.y"
  3185. { if (pending_inlines) do_pending_inlines (); ;
  3186.     break;}
  3187. case 11:
  3188. #line 326 "cp-parse.y"
  3189. { if (pending_inlines) do_pending_inlines (); ;
  3190.     break;}
  3191. case 12:
  3192. #line 328 "cp-parse.y"
  3193. { if (pending_inlines) do_pending_inlines (); ;
  3194.     break;}
  3195. case 14:
  3196. #line 331 "cp-parse.y"
  3197. { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
  3198.           assemble_asm (yyvsp[-2].ttype); ;
  3199.     break;}
  3200. case 15:
  3201. #line 334 "cp-parse.y"
  3202. { pop_lang_context (); ;
  3203.     break;}
  3204. case 16:
  3205. #line 336 "cp-parse.y"
  3206. { pop_lang_context (); ;
  3207.     break;}
  3208. case 17:
  3209. #line 338 "cp-parse.y"
  3210. { if (pending_inlines) do_pending_inlines ();
  3211.           pop_lang_context (); ;
  3212.     break;}
  3213. case 18:
  3214. #line 341 "cp-parse.y"
  3215. { if (pending_inlines) do_pending_inlines ();
  3216.           pop_lang_context (); ;
  3217.     break;}
  3218. case 19:
  3219. #line 347 "cp-parse.y"
  3220. { push_lang_context (yyvsp[0].ttype); ;
  3221.     break;}
  3222. case 20:
  3223. #line 352 "cp-parse.y"
  3224. { begin_template_parm_list (); ;
  3225.     break;}
  3226. case 21:
  3227. #line 354 "cp-parse.y"
  3228. { yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ;
  3229.     break;}
  3230. case 22:
  3231. #line 359 "cp-parse.y"
  3232. { yyval.ttype = process_template_parm (NULL_TREE, yyvsp[0].ttype); ;
  3233.     break;}
  3234. case 23:
  3235. #line 361 "cp-parse.y"
  3236. { yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ;
  3237.     break;}
  3238. case 24:
  3239. #line 372 "cp-parse.y"
  3240. {
  3241.           if (yyvsp[-1].ttype != class_type_node)
  3242.             error ("template type parameter must use keyword `class'");
  3243.           yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE);
  3244.         ;
  3245.     break;}
  3246. case 25:
  3247. #line 378 "cp-parse.y"
  3248. {
  3249.           if (yyvsp[-3].ttype != class_type_node)
  3250.             error ("template type parameter must use keyword `class'");
  3251.           warning ("restricted template type parameters not yet implemented");
  3252.           yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype);
  3253.         ;
  3254.     break;}
  3255. case 26:
  3256. #line 385 "cp-parse.y"
  3257. {
  3258.           if (yyvsp[-2].ttype != class_type_node)
  3259.             error ("template type parameter must use keyword `class'");
  3260.           warning ("restricted template type parameters not yet implemented");
  3261.           yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype);
  3262.         ;
  3263.     break;}
  3264. case 28:
  3265. #line 396 "cp-parse.y"
  3266. { warning ("use of `overload' is an anachronism"); ;
  3267.     break;}
  3268. case 29:
  3269. #line 400 "cp-parse.y"
  3270. { declare_overloaded (yyvsp[0].ttype); ;
  3271.     break;}
  3272. case 30:
  3273. #line 402 "cp-parse.y"
  3274. { declare_overloaded (yyvsp[0].ttype); ;
  3275.     break;}
  3276. case 31:
  3277. #line 409 "cp-parse.y"
  3278. { yychar = '{'; goto template1; ;
  3279.     break;}
  3280. case 33:
  3281. #line 412 "cp-parse.y"
  3282. { yychar = '{'; goto template1; ;
  3283.     break;}
  3284. case 35:
  3285. #line 415 "cp-parse.y"
  3286. { yychar = ':'; goto template1; ;
  3287.     break;}
  3288. case 37:
  3289. #line 418 "cp-parse.y"
  3290. {
  3291.           yychar = ':';
  3292.         template1:
  3293.           if (current_aggr == exception_type_node)
  3294.             error ("template type must define an aggregate or union");
  3295.           /* Maybe pedantic warning for union?
  3296.              How about an enum? :-)  */
  3297.           end_template_decl (yyvsp[-2].ttype, yyvsp[-1].ttype, current_aggr);
  3298.           reinit_parse_for_template (yychar, yyvsp[-2].ttype, yyvsp[-1].ttype);
  3299.           yychar = YYEMPTY;
  3300.         ;
  3301.     break;}
  3302. case 39:
  3303. #line 431 "cp-parse.y"
  3304. {
  3305.           end_template_decl (yyvsp[-2].ttype, yyvsp[-1].ttype, current_aggr);
  3306.           /* declare $2 as template name with $1 parm list */
  3307.         ;
  3308.     break;}
  3309. case 40:
  3310. #line 436 "cp-parse.y"
  3311. {
  3312.           end_template_decl (yyvsp[-2].ttype, yyvsp[-1].ttype, current_aggr);
  3313.           /* declare $2 as template name with $1 parm list */
  3314.         ;
  3315.     break;}
  3316. case 41:
  3317. #line 443 "cp-parse.y"
  3318. {
  3319.           tree d;
  3320.           int momentary;
  3321.           momentary = suspend_momentary ();
  3322.           d = start_decl (yyvsp[-4].ttype, /*current_declspecs*/NULL_TREE, 0, yyvsp[-3].ttype);
  3323.           cplus_decl_attributes (d, yyvsp[-1].ttype);
  3324.           finish_decl (d, NULL_TREE, yyvsp[-2].ttype, 0);
  3325.           end_template_decl (yyvsp[-5].ttype, d, 0);
  3326.           if (yyvsp[0].itype != ';')
  3327.             reinit_parse_for_template ((int) yyvsp[0].itype, yyvsp[-5].ttype, d);
  3328.           resume_momentary (momentary);
  3329.         ;
  3330.     break;}
  3331. case 42:
  3332. #line 458 "cp-parse.y"
  3333. {
  3334.           tree d;
  3335.           int momentary;
  3336.  
  3337.           current_declspecs = yyvsp[-5].ttype;
  3338.           momentary = suspend_momentary ();
  3339.           d = start_decl (yyvsp[-4].ttype, current_declspecs,
  3340.                   0, yyvsp[-3].ttype);
  3341.           cplus_decl_attributes (d, yyvsp[-1].ttype);
  3342.           finish_decl (d, NULL_TREE, yyvsp[-2].ttype, 0);
  3343.           end_exception_decls ();
  3344.           end_template_decl (yyvsp[-6].ttype, d, 0);
  3345.           if (yyvsp[0].itype != ';')
  3346.             {
  3347.               reinit_parse_for_template ((int) yyvsp[0].itype, yyvsp[-6].ttype, d);
  3348.               yychar = YYEMPTY;
  3349.             }
  3350.           note_list_got_semicolon (yyvsp[-5].ttype);
  3351.           resume_momentary (momentary);
  3352.         ;
  3353.     break;}
  3354. case 43:
  3355. #line 479 "cp-parse.y"
  3356. {
  3357.           tree d = start_decl (yyvsp[-1].ttype, yyvsp[-2].ttype, 0, NULL_TREE);
  3358.           finish_decl (d, NULL_TREE, NULL_TREE, 0);
  3359.           end_template_decl (yyvsp[-3].ttype, d, 0);
  3360.           if (yyvsp[0].itype != ';')
  3361.             reinit_parse_for_template ((int) yyvsp[0].itype, yyvsp[-3].ttype, d);
  3362.         ;
  3363.     break;}
  3364. case 44:
  3365. #line 487 "cp-parse.y"
  3366. { end_template_decl (yyvsp[-2].ttype, 0, 0); ;
  3367.     break;}
  3368. case 45:
  3369. #line 488 "cp-parse.y"
  3370. { end_template_decl (yyvsp[-2].ttype, 0, 0); ;
  3371.     break;}
  3372. case 46:
  3373. #line 491 "cp-parse.y"
  3374. { yyval.itype = '{'; ;
  3375.     break;}
  3376. case 47:
  3377. #line 492 "cp-parse.y"
  3378. { yyval.itype = ':'; ;
  3379.     break;}
  3380. case 48:
  3381. #line 493 "cp-parse.y"
  3382. { yyval.itype = ';'; ;
  3383.     break;}
  3384. case 49:
  3385. #line 494 "cp-parse.y"
  3386. { yyval.itype = '='; ;
  3387.     break;}
  3388. case 50:
  3389. #line 495 "cp-parse.y"
  3390. { yyval.itype = RETURN; ;
  3391.     break;}
  3392. case 51:
  3393. #line 500 "cp-parse.y"
  3394. { if (pedantic)
  3395.             pedwarn ("ANSI C++ forbids data definition with no type or storage class");
  3396.             else if (! flag_traditional && ! have_extern_spec)
  3397.               warning ("data definition has no type or storage class"); ;
  3398.     break;}
  3399. case 52:
  3400. #line 505 "cp-parse.y"
  3401. {;
  3402.     break;}
  3403. case 53:
  3404. #line 508 "cp-parse.y"
  3405. { tree d;
  3406.           d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE);
  3407.           finish_decl (d, NULL_TREE, NULL_TREE, 0);
  3408.         ;
  3409.     break;}
  3410. case 54:
  3411. #line 513 "cp-parse.y"
  3412. {
  3413.           end_exception_decls ();
  3414.           note_list_got_semicolon (yyval.ttype);
  3415.         ;
  3416.     break;}
  3417. case 55:
  3418. #line 519 "cp-parse.y"
  3419. { tree d;
  3420.           d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE);
  3421.           finish_decl (d, NULL_TREE, NULL_TREE, 0);
  3422.           end_exception_decls ();
  3423.           note_list_got_semicolon (yyval.ttype);
  3424.         ;
  3425.     break;}
  3426. case 56:
  3427. #line 526 "cp-parse.y"
  3428. { pedwarn ("empty declaration"); ;
  3429.     break;}
  3430. case 57:
  3431. #line 528 "cp-parse.y"
  3432. {
  3433.         tree t = yyval.ttype;
  3434.         shadow_tag (t);
  3435.         if (TREE_CODE (t) == TREE_LIST
  3436.         && TREE_PURPOSE (t) == NULL_TREE)
  3437.           {
  3438.         t = TREE_VALUE (t);
  3439.         if (TREE_CODE (t) == RECORD_TYPE
  3440.             && TYPE_SIZE (t)
  3441.             && CLASSTYPE_USE_TEMPLATE (t) == 0)
  3442.           CLASSTYPE_USE_TEMPLATE (t) = 2;
  3443.         else if (TREE_CODE (t) == ENUMERAL_TYPE
  3444.              && !TYPE_SIZE (t))
  3445.           cp_error ("forward declaration of `%#T'", t);
  3446.           }
  3447.         note_list_got_semicolon (yyval.ttype);
  3448.       ;
  3449.     break;}
  3450. case 61:
  3451. #line 552 "cp-parse.y"
  3452. {
  3453.           finish_function (lineno, 1);
  3454.           /* finish_function performs these three statements:
  3455.  
  3456.              expand_end_bindings (getdecls (), 1, 0);
  3457.              poplevel (1, 1, 0);
  3458.  
  3459.              expand_end_bindings (0, 0, 0);
  3460.              poplevel (0, 0, 1);
  3461.              */
  3462.           if (yyval.ttype) process_next_inline (yyval.ttype);
  3463.         ;
  3464.     break;}
  3465. case 62:
  3466. #line 565 "cp-parse.y"
  3467. {
  3468.           finish_function (lineno, 1);
  3469.           /* finish_function performs these three statements:
  3470.  
  3471.              expand_end_bindings (getdecls (), 1, 0);
  3472.              poplevel (1, 1, 0);
  3473.  
  3474.              expand_end_bindings (0, 0, 0);
  3475.              poplevel (0, 0, 1);
  3476.              */
  3477.           if (yyval.ttype) process_next_inline (yyval.ttype);
  3478.         ;
  3479.     break;}
  3480. case 63:
  3481. #line 578 "cp-parse.y"
  3482. { finish_function (lineno, 0);
  3483.           if (yyval.ttype) process_next_inline (yyval.ttype); ;
  3484.     break;}
  3485. case 64:
  3486. #line 581 "cp-parse.y"
  3487. { finish_function (lineno, 0);
  3488.           if (yyval.ttype) process_next_inline (yyval.ttype); ;
  3489.     break;}
  3490. case 65:
  3491. #line 584 "cp-parse.y"
  3492. { finish_function (lineno, 0);
  3493.           if (yyval.ttype) process_next_inline (yyval.ttype); ;
  3494.     break;}
  3495. case 66:
  3496. #line 587 "cp-parse.y"
  3497. {;
  3498.     break;}
  3499. case 67:
  3500. #line 589 "cp-parse.y"
  3501. {;
  3502.     break;}
  3503. case 68:
  3504. #line 591 "cp-parse.y"
  3505. {;
  3506.     break;}
  3507. case 69:
  3508. #line 596 "cp-parse.y"
  3509. { if (! start_function (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype, 0))
  3510.             YYERROR1;
  3511.           reinit_parse_for_function ();
  3512.           yyval.ttype = NULL_TREE; ;
  3513.     break;}
  3514. case 70:
  3515. #line 601 "cp-parse.y"
  3516. { if (! start_function (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype, 0))
  3517.             YYERROR1;
  3518.           reinit_parse_for_function ();
  3519.           yyval.ttype = NULL_TREE; ;
  3520.     break;}
  3521. case 71:
  3522. #line 606 "cp-parse.y"
  3523. { if (! start_function (NULL_TREE, yyval.ttype, yyvsp[0].ttype, 0))
  3524.             YYERROR1;
  3525.           reinit_parse_for_function ();
  3526.           yyval.ttype = NULL_TREE; ;
  3527.     break;}
  3528. case 72:
  3529. #line 611 "cp-parse.y"
  3530. { if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype), yyvsp[0].ttype, 0))
  3531.             YYERROR1;
  3532.           reinit_parse_for_function ();
  3533.           yyval.ttype = NULL_TREE; ;
  3534.     break;}
  3535. case 73:
  3536. #line 616 "cp-parse.y"
  3537. { if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype), yyvsp[0].ttype, 0))
  3538.             YYERROR1;
  3539.           reinit_parse_for_function ();
  3540.           yyval.ttype = NULL_TREE; ;
  3541.     break;}
  3542. case 74:
  3543. #line 621 "cp-parse.y"
  3544. { if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[-1].ttype), yyvsp[0].ttype, 0))
  3545.             YYERROR1;
  3546.           reinit_parse_for_function ();
  3547.           yyval.ttype = NULL_TREE; ;
  3548.     break;}
  3549. case 75:
  3550. #line 626 "cp-parse.y"
  3551. { if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[-1].ttype), yyvsp[0].ttype, 0))
  3552.             YYERROR1;
  3553.           reinit_parse_for_function ();
  3554.           yyval.ttype = NULL_TREE; ;
  3555.     break;}
  3556. case 76:
  3557. #line 631 "cp-parse.y"
  3558. { start_function (NULL_TREE, TREE_VALUE (yyval.ttype), NULL_TREE, 1);
  3559.           reinit_parse_for_function (); ;
  3560.     break;}
  3561. case 77:
  3562. #line 638 "cp-parse.y"
  3563. {
  3564.           tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyval.ttype), yyvsp[-3].ttype, yyvsp[-1].ttype);
  3565.           yyval.ttype = start_method (TREE_CHAIN (yyval.ttype), decl, yyvsp[0].ttype);
  3566.           if (! yyval.ttype)
  3567.             YYERROR1;
  3568.           if (yychar == YYEMPTY)
  3569.             yychar = YYLEX;
  3570.           reinit_parse_for_method (yychar, yyval.ttype); ;
  3571.     break;}
  3572. case 78:
  3573. #line 647 "cp-parse.y"
  3574. {
  3575.           tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyval.ttype), empty_parms (), yyvsp[-1].ttype);
  3576.           yyval.ttype = start_method (TREE_CHAIN (yyval.ttype), decl, yyvsp[0].ttype);
  3577.           if (! yyval.ttype)
  3578.             YYERROR1;
  3579.           if (yychar == YYEMPTY)
  3580.             yychar = YYLEX;
  3581.           reinit_parse_for_method (yychar, yyval.ttype); ;
  3582.     break;}
  3583. case 79:
  3584. #line 656 "cp-parse.y"
  3585. { yyval.ttype = start_method (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
  3586.           if (! yyval.ttype)
  3587.             YYERROR1;
  3588.           if (yychar == YYEMPTY)
  3589.             yychar = YYLEX;
  3590.           reinit_parse_for_method (yychar, yyval.ttype); ;
  3591.     break;}
  3592. case 80:
  3593. #line 663 "cp-parse.y"
  3594. {
  3595.           tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyval.ttype), yyvsp[-3].ttype, yyvsp[-1].ttype);
  3596.           yyval.ttype = start_method (TREE_CHAIN (yyval.ttype), decl, yyvsp[0].ttype);
  3597.           if (! yyval.ttype)
  3598.             YYERROR1;
  3599.           if (yychar == YYEMPTY)
  3600.             yychar = YYLEX;
  3601.           reinit_parse_for_method (yychar, yyval.ttype); ;
  3602.     break;}
  3603. case 81:
  3604. #line 672 "cp-parse.y"
  3605. {
  3606.           tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyval.ttype), empty_parms (), yyvsp[-1].ttype);
  3607.           yyval.ttype = start_method (TREE_CHAIN (yyval.ttype), decl, yyvsp[0].ttype);
  3608.           if (! yyval.ttype)
  3609.             YYERROR1;
  3610.           if (yychar == YYEMPTY)
  3611.             yychar = YYLEX;
  3612.           reinit_parse_for_method (yychar, yyval.ttype); ;
  3613.     break;}
  3614. case 82:
  3615. #line 681 "cp-parse.y"
  3616. { yyval.ttype = start_method (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
  3617.           if (! yyval.ttype)
  3618.             YYERROR1;
  3619.           if (yychar == YYEMPTY)
  3620.             yychar = YYLEX;
  3621.           reinit_parse_for_method (yychar, yyval.ttype); ;
  3622.     break;}
  3623. case 83:
  3624. #line 688 "cp-parse.y"
  3625. { yyval.ttype = start_method (NULL_TREE, yyval.ttype, yyvsp[0].ttype);
  3626.           if (! yyval.ttype)
  3627.             YYERROR1;
  3628.           if (yychar == YYEMPTY)
  3629.             yychar = YYLEX;
  3630.           reinit_parse_for_method (yychar, yyval.ttype); ;
  3631.     break;}
  3632. case 84:
  3633. #line 697 "cp-parse.y"
  3634. {
  3635.           if (! current_function_parms_stored)
  3636.             store_parm_decls ();
  3637.           yyval.ttype = yyvsp[0].ttype;
  3638.         ;
  3639.     break;}
  3640. case 85:
  3641. #line 705 "cp-parse.y"
  3642. { store_return_init (yyval.ttype, NULL_TREE); ;
  3643.     break;}
  3644. case 86:
  3645. #line 707 "cp-parse.y"
  3646. { store_return_init (yyval.ttype, yyvsp[0].ttype); ;
  3647.     break;}
  3648. case 87:
  3649. #line 709 "cp-parse.y"
  3650. { store_return_init (yyval.ttype, yyvsp[-1].ttype); ;
  3651.     break;}
  3652. case 88:
  3653. #line 711 "cp-parse.y"
  3654. { store_return_init (yyval.ttype, NULL_TREE); ;
  3655.     break;}
  3656. case 89:
  3657. #line 716 "cp-parse.y"
  3658. {
  3659.           if (yyvsp[0].itype == 0)
  3660.             error ("no base initializers given following ':'");
  3661.           setup_vtbl_ptr ();
  3662.           /* Always keep the BLOCK node associated with the outermost
  3663.              pair of curley braces of a function.  These are needed
  3664.              for correct operation of dwarfout.c.  */
  3665.           keep_next_level ();
  3666.         ;
  3667.     break;}
  3668. case 90:
  3669. #line 729 "cp-parse.y"
  3670. {
  3671.           if (! current_function_parms_stored)
  3672.             store_parm_decls ();
  3673.  
  3674.           /* Flag that we are processing base and member initializers.  */
  3675.           current_vtable_decl = error_mark_node;
  3676.  
  3677.           if (DECL_CONSTRUCTOR_P (current_function_decl))
  3678.             {
  3679.               /* Make a contour for the initializer list.  */
  3680.               pushlevel (0);
  3681.               clear_last_expr ();
  3682.               expand_start_bindings (0);
  3683.             }
  3684.           else if (current_class_type == NULL_TREE)
  3685.             error ("base initializers not allowed for non-member functions");
  3686.           else if (! DECL_CONSTRUCTOR_P (current_function_decl))
  3687.             error ("only constructors take base initializers");
  3688.         ;
  3689.     break;}
  3690. case 91:
  3691. #line 752 "cp-parse.y"
  3692. { yyval.itype = 0; ;
  3693.     break;}
  3694. case 92:
  3695. #line 754 "cp-parse.y"
  3696. { yyval.itype = 1; ;
  3697.     break;}
  3698. case 95:
  3699. #line 760 "cp-parse.y"
  3700. {
  3701.           if (current_class_name && !flag_traditional)
  3702.             pedwarn ("ANSI C++ forbids old style base class initialization",
  3703.                  IDENTIFIER_POINTER (current_class_name));
  3704.           expand_member_init (C_C_D, NULL_TREE, yyvsp[-1].ttype);
  3705.         ;
  3706.     break;}
  3707. case 96:
  3708. #line 767 "cp-parse.y"
  3709. {
  3710.           if (current_class_name && !flag_traditional)
  3711.             pedwarn ("ANSI C++ forbids old style base class initialization",
  3712.                  IDENTIFIER_POINTER (current_class_name));
  3713.           expand_member_init (C_C_D, NULL_TREE, void_type_node);
  3714.         ;
  3715.     break;}
  3716. case 97:
  3717. #line 774 "cp-parse.y"
  3718. {
  3719.           expand_member_init (C_C_D, yyval.ttype, yyvsp[-1].ttype);
  3720.         ;
  3721.     break;}
  3722. case 98:
  3723. #line 778 "cp-parse.y"
  3724. { expand_member_init (C_C_D, yyval.ttype, void_type_node); ;
  3725.     break;}
  3726. case 99:
  3727. #line 780 "cp-parse.y"
  3728. { expand_member_init (C_C_D, yyval.ttype, yyvsp[-1].ttype); ;
  3729.     break;}
  3730. case 100:
  3731. #line 782 "cp-parse.y"
  3732. { expand_member_init (C_C_D, yyval.ttype, void_type_node); ;
  3733.     break;}
  3734. case 101:
  3735. #line 784 "cp-parse.y"
  3736. { expand_member_init (C_C_D, yyval.ttype, yyvsp[-1].ttype); ;
  3737.     break;}
  3738. case 102:
  3739. #line 786 "cp-parse.y"
  3740. { expand_member_init (C_C_D, yyval.ttype, void_type_node); ;
  3741.     break;}
  3742. case 103:
  3743. #line 788 "cp-parse.y"
  3744. {
  3745.           do_member_init (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype);
  3746.         ;
  3747.     break;}
  3748. case 104:
  3749. #line 792 "cp-parse.y"
  3750. {
  3751.           do_member_init (yyval.ttype, yyvsp[-1].ttype, void_type_node);
  3752.         ;
  3753.     break;}
  3754. case 114:
  3755. #line 816 "cp-parse.y"
  3756. { yyval.ttype = build_parse_node (BIT_NOT_EXPR,yyvsp[0].ttype);;
  3757.     break;}
  3758. case 116:
  3759. #line 822 "cp-parse.y"
  3760. {
  3761.             extern tree template_type_seen_before_scope;
  3762.  
  3763.           if (yyvsp[0].ttype) 
  3764.             yyval.ttype = yyvsp[0].ttype;
  3765.           else if (yyval.ttype != error_mark_node)
  3766.             yyval.ttype = IDENTIFIER_TYPE_VALUE (yyval.ttype);
  3767.           /* This is a kludge: In order to detect nested types inside
  3768.            * template classes, we have to tell the lexer that it should
  3769.            * try to replace a following SCOPE token with the correct
  3770.            * SCOPED_TYPENAME for the nested type.  This SCOPED_TYPENAME
  3771.            * token will be handled in the rule "scoped_typename".
  3772.            * - niklas@appli.se */
  3773.           if (yychar == SCOPE)
  3774.             {
  3775.               /* We set template_type_seen_before_scope to be
  3776.              an error_mark_node so we can avoid meaningless
  3777.              and unhelpful syntax errors later.  */
  3778.               if (yyval.ttype != error_mark_node)
  3779.             template_type_seen_before_scope = TYPE_IDENTIFIER (yyval.ttype);
  3780.               else
  3781.             template_type_seen_before_scope = error_mark_node;
  3782.               yychar = YYLEX;
  3783.             }
  3784.         ;
  3785.     break;}
  3786. case 117:
  3787. #line 851 "cp-parse.y"
  3788. { yyval.ttype = lookup_template_class (yyval.ttype, yyvsp[-1].ttype, NULL_TREE); ;
  3789.     break;}
  3790. case 118:
  3791. #line 853 "cp-parse.y"
  3792. { yyval.ttype = lookup_template_class (yyval.ttype, yyvsp[-1].ttype, NULL_TREE); ;
  3793.     break;}
  3794. case 119:
  3795. #line 859 "cp-parse.y"
  3796. { yyungetc ('{', 1); yyval.ttype = 0; ;
  3797.     break;}
  3798. case 120:
  3799. #line 860 "cp-parse.y"
  3800. { yyungetc (':', 1); yyval.ttype = 0; ;
  3801.     break;}
  3802. case 121:
  3803. #line 862 "cp-parse.y"
  3804. { yyval.ttype = instantiate_class_template (yyvsp[0].ttype, 1); ;
  3805.     break;}
  3806. case 122:
  3807. #line 867 "cp-parse.y"
  3808. { yyval.ttype = instantiate_class_template (yyvsp[0].ttype, 1); ;
  3809.     break;}
  3810. case 123:
  3811. #line 872 "cp-parse.y"
  3812. { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
  3813.     break;}
  3814. case 124:
  3815. #line 874 "cp-parse.y"
  3816. { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
  3817.     break;}
  3818. case 125:
  3819. #line 879 "cp-parse.y"
  3820. { yyval.ttype = groktypename (yyval.ttype); ;
  3821.     break;}
  3822. case 127:
  3823. #line 885 "cp-parse.y"
  3824. {
  3825.           tree t, decl, id, tmpl;
  3826.  
  3827.           id = TREE_VALUE (yyvsp[-1].ttype);
  3828.           tmpl = TREE_PURPOSE (IDENTIFIER_TEMPLATE (id));
  3829.           t = xref_tag (DECL_TEMPLATE_INFO (tmpl)->aggr, id, yyvsp[0].ttype);
  3830.           set_current_level_tags_transparency (1);
  3831.           my_friendly_assert (TREE_CODE (t) == RECORD_TYPE
  3832.                       || TREE_CODE (t) == UNION_TYPE, 257);
  3833.           yyval.ttype = t;
  3834.  
  3835.           /* Now, put a copy of the decl in global scope, to avoid
  3836.              recursive expansion.  */
  3837.           decl = IDENTIFIER_LOCAL_VALUE (id);
  3838.           if (!decl)
  3839.             decl = IDENTIFIER_CLASS_VALUE (id);
  3840.           /* Now, put a copy of the decl in global scope, to avoid
  3841.              recursive expansion.  */
  3842.                   if (decl)
  3843.                     {
  3844.               /* Need to copy it to clear the chain pointer,
  3845.              and need to get it into permanent storage.  */
  3846.                       my_friendly_assert (TREE_CODE (decl) == TYPE_DECL, 258);
  3847.               push_obstacks (&permanent_obstack, &permanent_obstack);
  3848.                       decl = copy_node (decl);
  3849.               if (DECL_LANG_SPECIFIC (decl))
  3850.             copy_lang_decl (decl);
  3851.               pop_obstacks ();
  3852.               pushdecl_top_level (decl);
  3853.             }
  3854.         ;
  3855.     break;}
  3856. case 128:
  3857. #line 917 "cp-parse.y"
  3858. {
  3859.           yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-1].ttype, 0);
  3860.  
  3861.           pop_obstacks ();
  3862.           end_template_instantiation (yyvsp[-5].ttype, yyvsp[-3].ttype);
  3863.  
  3864.                   /* Now go after the methods & class data.  */
  3865.                   instantiate_member_templates (yyvsp[-5].ttype);
  3866.  
  3867.           pop_tinst_level();
  3868.  
  3869.           CLASSTYPE_GOT_SEMICOLON (yyval.ttype) = 1;
  3870.         ;
  3871.     break;}
  3872. case 129:
  3873. #line 934 "cp-parse.y"
  3874. { yyval.ttype = NULL_TREE; ;
  3875.     break;}
  3876. case 130:
  3877. #line 936 "cp-parse.y"
  3878. { yyval.ttype = yyvsp[0].ttype; ;
  3879.     break;}
  3880. case 131:
  3881. #line 941 "cp-parse.y"
  3882. { yyval.ttype = NULL_TREE; /* never used from here... */;
  3883.     break;}
  3884. case 132:
  3885. #line 943 "cp-parse.y"
  3886. { yyval.ttype = yyvsp[-1].ttype; /*???*/ ;
  3887.     break;}
  3888. case 133:
  3889. #line 947 "cp-parse.y"
  3890. { yyval.code = NEGATE_EXPR; ;
  3891.     break;}
  3892. case 134:
  3893. #line 949 "cp-parse.y"
  3894. { yyval.code = CONVERT_EXPR; ;
  3895.     break;}
  3896. case 135:
  3897. #line 951 "cp-parse.y"
  3898. { yyval.code = PREINCREMENT_EXPR; ;
  3899.     break;}
  3900. case 136:
  3901. #line 953 "cp-parse.y"
  3902. { yyval.code = PREDECREMENT_EXPR; ;
  3903.     break;}
  3904. case 137:
  3905. #line 955 "cp-parse.y"
  3906. { yyval.code = TRUTH_NOT_EXPR; ;
  3907.     break;}
  3908. case 138:
  3909. #line 959 "cp-parse.y"
  3910. { yyval.ttype = build_x_compound_expr (yyval.ttype); ;
  3911.     break;}
  3912. case 140:
  3913. #line 966 "cp-parse.y"
  3914. { error ("ANSI C++ forbids an empty condition for `%s'",
  3915.              cond_stmt_keyword);
  3916.           yyval.ttype = integer_zero_node; ;
  3917.     break;}
  3918. case 141:
  3919. #line 970 "cp-parse.y"
  3920. { yyval.ttype = yyvsp[-1].ttype; ;
  3921.     break;}
  3922. case 142:
  3923. #line 975 "cp-parse.y"
  3924. { error ("ANSI C++ forbids an empty condition for `%s'",
  3925.              cond_stmt_keyword);
  3926.           yyval.ttype = integer_zero_node; ;
  3927.     break;}
  3928. case 143:
  3929. #line 979 "cp-parse.y"
  3930. { yyval.ttype = yyvsp[-1].ttype; ;
  3931.     break;}
  3932. case 144:
  3933. #line 984 "cp-parse.y"
  3934. { yyval.ttype = NULL_TREE; ;
  3935.     break;}
  3936. case 146:
  3937. #line 987 "cp-parse.y"
  3938. { yyval.ttype = NULL_TREE; ;
  3939.     break;}
  3940. case 147:
  3941. #line 992 "cp-parse.y"
  3942. { {
  3943.           tree d;
  3944.           for (d = getdecls (); d; d = TREE_CHAIN (d))
  3945.             if (TREE_CODE (d) == TYPE_DECL) {
  3946.               tree s = TREE_TYPE (d);
  3947.               if (TREE_CODE (s) == RECORD_TYPE)
  3948.             cp_error ("definition of class `%T' in condition", s);
  3949.               else if (TREE_CODE (s) == ENUMERAL_TYPE)
  3950.             cp_error ("definition of enum `%T' in condition", s);
  3951.             }
  3952.           }
  3953.           current_declspecs = yyvsp[-5].ttype;
  3954.           yyvsp[0].itype = suspend_momentary ();
  3955.           yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype);
  3956.           cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype);
  3957.         ;
  3958.     break;}
  3959. case 148:
  3960. #line 1009 "cp-parse.y"
  3961.           finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].ttype, 0);
  3962.           resume_momentary (yyvsp[-2].itype);
  3963.           yyval.ttype = yyvsp[-1].ttype; 
  3964.           if (TREE_CODE (TREE_TYPE (yyval.ttype)) == ARRAY_TYPE)
  3965.             cp_error ("definition of array `%#D' in condition", yyval.ttype); 
  3966.         ;
  3967.     break;}
  3968. case 150:
  3969. #line 1022 "cp-parse.y"
  3970. { tree d = getdecls ();
  3971.           emit_line_note (input_filename, lineno);
  3972.           pushlevel (0);
  3973.           clear_last_expr ();
  3974.           push_momentary ();
  3975.           expand_start_bindings (0);
  3976.           if (d) pushdecl (d);
  3977.             ;
  3978.     break;}
  3979. case 151:
  3980. #line 1035 "cp-parse.y"
  3981. { pop_implicit_try_blocks (NULL_TREE);
  3982.           expand_end_bindings (getdecls (), kept_level_p (), 1);
  3983.           yyval.ttype = poplevel (kept_level_p (), 1, 0);
  3984.           pop_momentary (); 
  3985.           finish_stmt (); ;
  3986.     break;}
  3987. case 152:
  3988. #line 1041 "cp-parse.y"
  3989. { pop_implicit_try_blocks (NULL_TREE);
  3990.           expand_end_bindings (getdecls (), kept_level_p (), 1);
  3991.           yyval.ttype = poplevel (kept_level_p (), 1, 0);
  3992.           pop_momentary (); 
  3993.           finish_stmt (); ;
  3994.     break;}
  3995. case 153:
  3996. #line 1047 "cp-parse.y"
  3997. { pop_implicit_try_blocks (NULL_TREE);
  3998.           expand_end_bindings (getdecls (), kept_level_p (), 1);
  3999.           yyval.ttype = poplevel (kept_level_p (), 0, 0);
  4000.           pop_momentary (); 
  4001.           finish_stmt (); ;
  4002.     break;}
  4003. case 154:
  4004. #line 1053 "cp-parse.y"
  4005. { pop_implicit_try_blocks (NULL_TREE);
  4006.           expand_end_bindings (getdecls (), kept_level_p (), 1);
  4007.           yyval.ttype = poplevel (kept_level_p (), 1, 0);
  4008.           pop_momentary (); ;
  4009.     break;}
  4010. case 155:
  4011. #line 1061 "cp-parse.y"
  4012. { finish_stmt (); ;
  4013.     break;}
  4014. case 156:
  4015. #line 1063 "cp-parse.y"
  4016. { finish_stmt (); ;
  4017.     break;}
  4018. case 157:
  4019. #line 1065 "cp-parse.y"
  4020. { finish_stmt (); ;
  4021.     break;}
  4022. case 159:
  4023. #line 1071 "cp-parse.y"
  4024. { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
  4025.     break;}
  4026. case 160:
  4027. #line 1073 "cp-parse.y"
  4028. { chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
  4029.     break;}
  4030. case 161:
  4031. #line 1075 "cp-parse.y"
  4032. { chainon (yyval.ttype, build_tree_list (NULL_TREE, error_mark_node)); ;
  4033.     break;}
  4034. case 162:
  4035. #line 1080 "cp-parse.y"
  4036. {
  4037.           if (TREE_CODE (yyval.ttype) == TYPE_EXPR)
  4038.             yyval.ttype = build_component_type_expr (C_C_D, yyval.ttype, NULL_TREE, 1);
  4039.         ;
  4040.     break;}
  4041. case 163:
  4042. #line 1086 "cp-parse.y"
  4043. { yyvsp[0].itype = pedantic;
  4044.           pedantic = 0; ;
  4045.     break;}
  4046. case 164:
  4047. #line 1089 "cp-parse.y"
  4048. { yyval.ttype = yyvsp[0].ttype;
  4049.           pedantic = yyvsp[-2].itype; ;
  4050.     break;}
  4051. case 165:
  4052. #line 1092 "cp-parse.y"
  4053. { yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ;
  4054.     break;}
  4055. case 166:
  4056. #line 1094 "cp-parse.y"
  4057. { yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ;
  4058.     break;}
  4059. case 167:
  4060. #line 1096 "cp-parse.y"
  4061. { yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ;
  4062.     break;}
  4063. case 168:
  4064. #line 1098 "cp-parse.y"
  4065. { yyval.ttype = build_x_unary_op ((enum tree_code) yyval.ttype, yyvsp[0].ttype);
  4066.           if (yyvsp[-1].code == NEGATE_EXPR && TREE_CODE (yyvsp[0].ttype) == INTEGER_CST)
  4067.             TREE_NEGATED_INT (yyval.ttype) = 1;
  4068.           overflow_warning (yyval.ttype);
  4069.         ;
  4070.     break;}
  4071. case 169:
  4072. #line 1105 "cp-parse.y"
  4073. { tree label = lookup_label (yyvsp[0].ttype);
  4074.           if (label == NULL_TREE)
  4075.             yyval.ttype = null_pointer_node;
  4076.           else
  4077.             {
  4078.               TREE_USED (label) = 1;
  4079.               yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label);
  4080.               TREE_CONSTANT (yyval.ttype) = 1;
  4081.             }
  4082.         ;
  4083.     break;}
  4084. case 170:
  4085. #line 1116 "cp-parse.y"
  4086. { if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
  4087.               && DECL_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
  4088.             error ("sizeof applied to a bit-field");
  4089.           /* ANSI says arrays and functions are converted inside comma.
  4090.              But we can't really convert them in build_compound_expr
  4091.              because that would break commas in lvalues.
  4092.              So do the conversion here if operand was a comma.  */
  4093.           if (TREE_CODE (yyvsp[0].ttype) == COMPOUND_EXPR
  4094.               && (TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == ARRAY_TYPE
  4095.               || TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == FUNCTION_TYPE))
  4096.             yyvsp[0].ttype = default_conversion (yyvsp[0].ttype);
  4097.           else if (TREE_CODE (yyvsp[0].ttype) == TREE_LIST)
  4098.                 {
  4099.               tree t = TREE_VALUE (yyvsp[0].ttype);
  4100.               if (t != NULL_TREE && 
  4101.                   ((TREE_TYPE( t) == 0) || TREE_CODE (TREE_TYPE (t)) == FUNCTION_TYPE))
  4102.             pedwarn ("ANSI C++ forbids using sizeof() on a function");
  4103.             }
  4104.           yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
  4105.     break;}
  4106. case 171:
  4107. #line 1136 "cp-parse.y"
  4108. { yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
  4109.     break;}
  4110. case 172:
  4111. #line 1138 "cp-parse.y"
  4112. { yyval.ttype = grok_alignof (yyvsp[0].ttype); ;
  4113.     break;}
  4114. case 173:
  4115. #line 1140 "cp-parse.y"
  4116. { yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
  4117.     break;}
  4118. case 174:
  4119. #line 1143 "cp-parse.y"
  4120. { yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE, yyval.ttype != NULL_TREE); ;
  4121.     break;}
  4122. case 175:
  4123. #line 1145 "cp-parse.y"
  4124. { yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE, yyval.ttype != NULL_TREE); ;
  4125.     break;}
  4126. case 176:
  4127. #line 1147 "cp-parse.y"
  4128. { yyval.ttype = build_new (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyval.ttype != NULL_TREE); ;
  4129.     break;}
  4130. case 177:
  4131. #line 1149 "cp-parse.y"
  4132. { cp_error ("`%T' is not a valid expression", yyvsp[-1].ttype);
  4133.           yyval.ttype = error_mark_node; ;
  4134.     break;}
  4135. case 178:
  4136. #line 1152 "cp-parse.y"
  4137. { yyval.ttype = build_new (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyval.ttype != NULL_TREE); ;
  4138.     break;}
  4139. case 179:
  4140. #line 1154 "cp-parse.y"
  4141. { yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE, yyval.ttype != NULL_TREE); ;
  4142.     break;}
  4143. case 180:
  4144. #line 1156 "cp-parse.y"
  4145. { yyval.ttype = build_new (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, yyval.ttype != NULL_TREE); ;
  4146.     break;}
  4147. case 181:
  4148. #line 1158 "cp-parse.y"
  4149. { yyval.ttype = build_new (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype != NULL_TREE); ;
  4150.     break;}
  4151. case 182:
  4152. #line 1160 "cp-parse.y"
  4153. { yyval.ttype = build_new (yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype != NULL_TREE); ;
  4154.     break;}
  4155. case 183:
  4156. #line 1168 "cp-parse.y"
  4157. {
  4158.           tree absdcl, typename;
  4159.  
  4160.         illegal_new_array:
  4161.           absdcl = build_parse_node (ARRAY_REF, yyvsp[-4].ttype, yyvsp[-1].ttype);
  4162.           typename = build_decl_list (yyvsp[-5].ttype, absdcl);
  4163.           pedwarn ("ANSI C++ forbids array dimensions with parenthesized type");
  4164.           yyval.ttype = build_new (yyvsp[-7].ttype, typename, NULL_TREE, yyval.ttype != NULL_TREE);
  4165.         ;
  4166.     break;}
  4167. case 184:
  4168. #line 1178 "cp-parse.y"
  4169. { goto illegal_new_array; ;
  4170.     break;}
  4171. case 185:
  4172. #line 1181 "cp-parse.y"
  4173. { yyval.ttype = build_new (yyvsp[-4].ttype, build_decl_list (yyvsp[-2].ttype, yyvsp[-1].ttype), NULL_TREE, yyval.ttype != NULL_TREE); ;
  4174.     break;}
  4175. case 186:
  4176. #line 1183 "cp-parse.y"
  4177. { yyval.ttype = build_new (yyvsp[-5].ttype, build_decl_list (yyvsp[-2].ttype, yyvsp[-1].ttype), NULL_TREE, yyval.ttype != NULL_TREE); ;
  4178.     break;}
  4179. case 187:
  4180. #line 1185 "cp-parse.y"
  4181. { yyval.ttype = build_new (yyvsp[-4].ttype, build_decl_list (yyvsp[-2].ttype, yyvsp[-1].ttype), NULL_TREE, yyval.ttype != NULL_TREE); ;
  4182.     break;}
  4183. case 188:
  4184. #line 1187 "cp-parse.y"
  4185. { yyval.ttype = build_new (yyvsp[-5].ttype, build_decl_list (yyvsp[-2].ttype, yyvsp[-1].ttype), NULL_TREE, yyval.ttype != NULL_TREE); ;
  4186.     break;}
  4187. case 189:
  4188. #line 1190 "cp-parse.y"
  4189. { yyungetc (':', 1); yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE, yyval.ttype != NULL_TREE); ;
  4190.     break;}
  4191. case 190:
  4192. #line 1192 "cp-parse.y"
  4193. { yyungetc (':', 1); yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE, yyval.ttype != NULL_TREE); ;
  4194.     break;}
  4195. case 191:
  4196. #line 1195 "cp-parse.y"
  4197. { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 0); ;
  4198.     break;}
  4199. case 192:
  4200. #line 1197 "cp-parse.y"
  4201. { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 1);
  4202.           if (yychar == YYEMPTY)
  4203.             yychar = YYLEX; ;
  4204.     break;}
  4205. case 193:
  4206. #line 1201 "cp-parse.y"
  4207. { yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2);
  4208.           if (yychar == YYEMPTY)
  4209.             yychar = YYLEX; ;
  4210.     break;}
  4211. case 195:
  4212. #line 1209 "cp-parse.y"
  4213. { tree type = groktypename (yyvsp[-2].ttype);
  4214.           yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
  4215.     break;}
  4216. case 196:
  4217. #line 1212 "cp-parse.y"
  4218. { tree type = groktypename (yyvsp[-5].ttype);
  4219.           tree init = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
  4220.           if (pedantic)
  4221.             pedwarn ("ANSI C++ forbids constructor-expressions");
  4222.           /* Indicate that this was a GNU C constructor expression.  */
  4223.           TREE_HAS_CONSTRUCTOR (init) = 1;
  4224.           yyval.ttype = digest_init (type, init, (tree *) 0);
  4225.           if (TREE_CODE (type) == ARRAY_TYPE && TYPE_SIZE (type) == 0)
  4226.             {
  4227.               int failure = complete_array_type (type, yyval.ttype, 1);
  4228.               if (failure)
  4229.             my_friendly_abort (78);
  4230.             }
  4231.         ;
  4232.     break;}
  4233. case 197:
  4234. #line 1227 "cp-parse.y"
  4235. { yyval.ttype = build_headof (yyvsp[-1].ttype); ;
  4236.     break;}
  4237. case 198:
  4238. #line 1229 "cp-parse.y"
  4239. { yyval.ttype = build_classof (yyvsp[-1].ttype); ;
  4240.     break;}
  4241. case 199:
  4242. #line 1231 "cp-parse.y"
  4243. { if (is_aggr_typedef (yyvsp[-1].ttype, 1))
  4244.             {
  4245.               tree type = IDENTIFIER_TYPE_VALUE (yyvsp[-1].ttype);
  4246.               yyval.ttype = CLASSTYPE_DOSSIER (type);
  4247.             }
  4248.           else
  4249.             yyval.ttype = error_mark_node;
  4250.         ;
  4251.     break;}
  4252. case 201:
  4253. #line 1244 "cp-parse.y"
  4254. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4255.     break;}
  4256. case 202:
  4257. #line 1246 "cp-parse.y"
  4258. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4259.     break;}
  4260. case 203:
  4261. #line 1248 "cp-parse.y"
  4262. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4263.     break;}
  4264. case 204:
  4265. #line 1250 "cp-parse.y"
  4266. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4267.     break;}
  4268. case 205:
  4269. #line 1252 "cp-parse.y"
  4270. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4271.     break;}
  4272. case 206:
  4273. #line 1254 "cp-parse.y"
  4274. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4275.     break;}
  4276. case 207:
  4277. #line 1256 "cp-parse.y"
  4278. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4279.     break;}
  4280. case 208:
  4281. #line 1258 "cp-parse.y"
  4282. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4283.     break;}
  4284. case 209:
  4285. #line 1260 "cp-parse.y"
  4286. { yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
  4287.     break;}
  4288. case 210:
  4289. #line 1262 "cp-parse.y"
  4290. { yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
  4291.     break;}
  4292. case 211:
  4293. #line 1264 "cp-parse.y"
  4294. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4295.     break;}
  4296. case 212:
  4297. #line 1266 "cp-parse.y"
  4298. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4299.     break;}
  4300. case 213:
  4301. #line 1268 "cp-parse.y"
  4302. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4303.     break;}
  4304. case 214:
  4305. #line 1270 "cp-parse.y"
  4306. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4307.     break;}
  4308. case 215:
  4309. #line 1272 "cp-parse.y"
  4310. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4311.     break;}
  4312. case 216:
  4313. #line 1274 "cp-parse.y"
  4314. { yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
  4315.     break;}
  4316. case 217:
  4317. #line 1276 "cp-parse.y"
  4318. { yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
  4319.     break;}
  4320. case 218:
  4321. #line 1278 "cp-parse.y"
  4322. { yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  4323.     break;}
  4324. case 219:
  4325. #line 1280 "cp-parse.y"
  4326. { yyval.ttype = build_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype); ;
  4327.     break;}
  4328. case 220:
  4329. #line 1282 "cp-parse.y"
  4330. { register tree rval;
  4331.           if (rval = build_opfncall (MODIFY_EXPR, LOOKUP_NORMAL, yyval.ttype, yyvsp[0].ttype,
  4332.                          make_node (yyvsp[-1].code)))
  4333.             yyval.ttype = rval;
  4334.           else
  4335.             yyval.ttype = build_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
  4336.     break;}
  4337. case 221:
  4338. #line 1289 "cp-parse.y"
  4339. { yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ;
  4340.     break;}
  4341. case 222:
  4342. #line 1292 "cp-parse.y"
  4343. { yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ;
  4344.     break;}
  4345. case 223:
  4346. #line 1310 "cp-parse.y"
  4347. { yyval.ttype = do_identifier (yyval.ttype); ;
  4348.     break;}
  4349. case 224:
  4350. #line 1312 "cp-parse.y"
  4351. {
  4352.           tree op = yyval.ttype;
  4353.           if (TREE_CODE (op) != IDENTIFIER_NODE)
  4354.             yyval.ttype = op;
  4355.           else
  4356.             {
  4357.               yyval.ttype = lookup_name (op, 0);
  4358.               if (yyval.ttype == NULL_TREE)
  4359.             {
  4360.               if (op != ansi_opname[ERROR_MARK])
  4361.                 error ("operator %s not defined",
  4362.                    operator_name_string (op));
  4363.               yyval.ttype = error_mark_node;
  4364.             }
  4365.             }
  4366.         ;
  4367.     break;}
  4368. case 226:
  4369. #line 1330 "cp-parse.y"
  4370. { yyval.ttype = combine_strings (yyval.ttype); ;
  4371.     break;}
  4372. case 227:
  4373. #line 1332 "cp-parse.y"
  4374. { yyval.ttype = yyvsp[-1].ttype; ;
  4375.     break;}
  4376. case 228:
  4377. #line 1334 "cp-parse.y"
  4378. { yyval.ttype = error_mark_node; ;
  4379.     break;}
  4380. case 229:
  4381. #line 1336 "cp-parse.y"
  4382. { if (current_function_decl == 0)
  4383.             {
  4384.               error ("braced-group within expression allowed only inside a function");
  4385.               YYERROR;
  4386.             }
  4387.           keep_next_level ();
  4388.           yyval.ttype = expand_start_stmt_expr (); ;
  4389.     break;}
  4390. case 230:
  4391. #line 1344 "cp-parse.y"
  4392. { tree rtl_exp;
  4393.           if (pedantic)
  4394.             pedwarn ("ANSI C++ forbids braced-groups within expressions");
  4395.           rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
  4396.           /* The statements have side effects, so the group does.  */
  4397.           TREE_SIDE_EFFECTS (rtl_exp) = 1;
  4398.           /* Make a BIND_EXPR for the BLOCK already made.  */
  4399.           yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
  4400.                   NULL_TREE, rtl_exp, yyvsp[-1].ttype);
  4401.           /* Remove the block from the tree at this point.
  4402.              It gets put back at the proper place
  4403.              when the BIND_EXPR is expanded.  */
  4404.           delete_block (yyvsp[-1].ttype);
  4405.         ;
  4406.     break;}
  4407. case 231:
  4408. #line 1359 "cp-parse.y"
  4409. { /* [eichin:19911016.1902EST] */
  4410.                   yyval.ttype = build_x_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype, current_class_decl); 
  4411.                   /* here we instantiate_class_template as needed... */
  4412.                   do_pending_templates ();
  4413.                 ;
  4414.     break;}
  4415. case 232:
  4416. #line 1363 "cp-parse.y"
  4417. {
  4418.                   if (TREE_CODE (yyvsp[-1].ttype) == CALL_EXPR
  4419.                       && TREE_TYPE (yyvsp[-1].ttype) != void_type_node)
  4420.                 yyval.ttype = require_complete_type (yyvsp[-1].ttype);
  4421.                   else
  4422.                     yyval.ttype = yyvsp[-1].ttype;
  4423.                 ;
  4424.     break;}
  4425. case 233:
  4426. #line 1371 "cp-parse.y"
  4427. {
  4428.           yyval.ttype = build_x_function_call (yyval.ttype, NULL_TREE, current_class_decl);
  4429.           if (TREE_CODE (yyval.ttype) == CALL_EXPR
  4430.               && TREE_TYPE (yyval.ttype) != void_type_node)
  4431.             yyval.ttype = require_complete_type (yyval.ttype);
  4432.                 ;
  4433.     break;}
  4434. case 234:
  4435. #line 1378 "cp-parse.y"
  4436. { do_array:
  4437.             yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ;
  4438.     break;}
  4439. case 235:
  4440. #line 1381 "cp-parse.y"
  4441. { yyval.ttype = build_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ;
  4442.     break;}
  4443. case 236:
  4444. #line 1383 "cp-parse.y"
  4445. { yyval.ttype = build_object_ref (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
  4446.     break;}
  4447. case 237:
  4448. #line 1385 "cp-parse.y"
  4449. { /* If we get an OFFSET_REF, turn it into what it really
  4450.              means (e.g., a COMPONENT_REF).  This way if we've got,
  4451.              say, a reference to a static member that's being operated
  4452.              on, we don't end up trying to find a member operator for
  4453.              the class it's in.  */
  4454.           if (TREE_CODE (yyval.ttype) == OFFSET_REF)
  4455.             yyval.ttype = resolve_offset_ref (yyval.ttype);
  4456.           yyval.ttype = build_x_unary_op (POSTINCREMENT_EXPR, yyval.ttype); ;
  4457.     break;}
  4458. case 238:
  4459. #line 1394 "cp-parse.y"
  4460. { if (TREE_CODE (yyval.ttype) == OFFSET_REF)
  4461.             yyval.ttype = resolve_offset_ref (yyval.ttype);
  4462.           yyval.ttype = build_x_unary_op (POSTDECREMENT_EXPR, yyval.ttype); ;
  4463.     break;}
  4464. case 239:
  4465. #line 1399 "cp-parse.y"
  4466. { if (current_class_decl)
  4467.             {
  4468. #ifdef WARNING_ABOUT_CCD
  4469.               TREE_USED (current_class_decl) = 1;
  4470. #endif
  4471.               yyval.ttype = current_class_decl;
  4472.             }
  4473.           else if (current_function_decl
  4474.                && DECL_STATIC_FUNCTION_P (current_function_decl))
  4475.             {
  4476.               error ("`this' is unavailable for static member functions");
  4477.               yyval.ttype = error_mark_node;
  4478.             }
  4479.           else
  4480.             {
  4481.               if (current_function_decl)
  4482.             error ("invalid use of `this' in non-member function");
  4483.               else
  4484.             error ("invalid use of `this' at top level");
  4485.               yyval.ttype = error_mark_node;
  4486.             }
  4487.         ;
  4488.     break;}
  4489. case 240:
  4490. #line 1422 "cp-parse.y"
  4491. {
  4492.           tree type;
  4493.           tree id = yyval.ttype;
  4494.  
  4495.           /* This is a C cast in C++'s `functional' notation.  */
  4496.           if (yyvsp[-1].ttype == error_mark_node)
  4497.             {
  4498.               yyval.ttype = error_mark_node;
  4499.               break;
  4500.             }
  4501. #if 0
  4502.           if (yyvsp[-1].ttype == NULL_TREE)
  4503.             {
  4504.               error ("cannot cast null list to type `%s'",
  4505.                      IDENTIFIER_POINTER (TYPE_NAME (id)));
  4506.               yyval.ttype = error_mark_node;
  4507.               break;
  4508.             }
  4509. #endif
  4510. #if 0
  4511.           /* type is not set! (mrs) */
  4512.           if (type == error_mark_node)
  4513.             yyval.ttype = error_mark_node;
  4514.           else
  4515. #endif
  4516.             {
  4517.               if (id == ridpointers[(int) RID_CONST])
  4518.                 type = build_type_variant (integer_type_node, 1, 0);
  4519.               else if (id == ridpointers[(int) RID_VOLATILE])
  4520.                 type = build_type_variant (integer_type_node, 0, 1);
  4521. #if 0
  4522.               /* should not be able to get here (mrs) */
  4523.               else if (id == ridpointers[(int) RID_FRIEND])
  4524.                 {
  4525.                   error ("cannot cast expression to `friend' type");
  4526.                   yyval.ttype = error_mark_node;
  4527.                   break;
  4528.                 }
  4529. #endif
  4530.               else my_friendly_abort (79);
  4531.               yyval.ttype = build_c_cast (type, build_compound_expr (yyvsp[-1].ttype));
  4532.             }
  4533.         ;
  4534.     break;}
  4535. case 241:
  4536. #line 1466 "cp-parse.y"
  4537. { yyval.ttype = build_functional_cast (yyval.ttype, yyvsp[-1].ttype); ;
  4538.     break;}
  4539. case 242:
  4540. #line 1468 "cp-parse.y"
  4541. { yyval.ttype = build_functional_cast (yyval.ttype, NULL_TREE); ;
  4542.     break;}
  4543. case 243:
  4544. #line 1471 "cp-parse.y"
  4545. { tree type = groktypename (yyvsp[-4].ttype);
  4546.           yyval.ttype = build_dynamic_cast (type, yyvsp[-1].ttype); ;
  4547.     break;}
  4548. case 244:
  4549. #line 1474 "cp-parse.y"
  4550. { yyval.ttype = build_typeid (yyvsp[-1].ttype); ;
  4551.     break;}
  4552. case 245:
  4553. #line 1476 "cp-parse.y"
  4554. { tree type = groktypename (yyvsp[-1].ttype);
  4555.           yyval.ttype = get_typeid (type); ;
  4556.     break;}
  4557. case 246:
  4558. #line 1479 "cp-parse.y"
  4559. { yyval.ttype = build_functional_cast (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
  4560.     break;}
  4561. case 247:
  4562. #line 1481 "cp-parse.y"
  4563. { yyval.ttype = build_functional_cast (yyvsp[-1].ttype, NULL_TREE); ;
  4564.     break;}
  4565. case 248:
  4566. #line 1483 "cp-parse.y"
  4567. {
  4568.         do_scoped_id:
  4569.           yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
  4570.           if (yychar == YYEMPTY)
  4571.             yychar = YYLEX;
  4572.           if (! yyval.ttype)
  4573.             {
  4574.               if (yychar == '(' || yychar == LEFT_RIGHT)
  4575.             yyval.ttype = implicitly_declare (yyvsp[0].ttype);
  4576.               else
  4577.             {
  4578.               if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node)
  4579.                 error ("undeclared variable `%s' (first use here)",
  4580.                    IDENTIFIER_POINTER (yyvsp[0].ttype));
  4581.               yyval.ttype = error_mark_node;
  4582.               /* Prevent repeated error messages.  */
  4583.               IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) = error_mark_node;
  4584.             }
  4585.             }
  4586.           else
  4587.             {
  4588.               if (TREE_CODE (yyval.ttype) == ADDR_EXPR)
  4589.             assemble_external (TREE_OPERAND (yyval.ttype, 0));
  4590.               else
  4591.             assemble_external (yyval.ttype);
  4592.               TREE_USED (yyval.ttype) = 1;
  4593.             }
  4594.           if (TREE_CODE (yyval.ttype) == CONST_DECL)
  4595.             {
  4596.               /* XXX CHS - should we set TREE_USED of the constant? */
  4597.               yyval.ttype = DECL_INITIAL (yyval.ttype);
  4598.               /* This is to prevent an enum whose value is 0
  4599.              from being considered a null pointer constant.  */
  4600.               yyval.ttype = build1 (NOP_EXPR, TREE_TYPE (yyval.ttype), yyval.ttype);
  4601.               TREE_CONSTANT (yyval.ttype) = 1;
  4602.             }
  4603.  
  4604.         ;
  4605.     break;}
  4606. case 249:
  4607. #line 1522 "cp-parse.y"
  4608. {
  4609.           if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
  4610.             goto do_scoped_id;
  4611.         do_scoped_operator:
  4612.           yyval.ttype = yyvsp[0].ttype;
  4613.         ;
  4614.     break;}
  4615. case 250:
  4616. #line 1529 "cp-parse.y"
  4617. { yyval.ttype = build_offset_ref (yyval.ttype, yyvsp[0].ttype); ;
  4618.     break;}
  4619. case 251:
  4620. #line 1531 "cp-parse.y"
  4621. { yyval.ttype = build_member_call (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
  4622.     break;}
  4623. case 252:
  4624. #line 1533 "cp-parse.y"
  4625. { yyval.ttype = build_member_call (yyval.ttype, yyvsp[-1].ttype, NULL_TREE); ;
  4626.     break;}
  4627. case 253:
  4628. #line 1535 "cp-parse.y"
  4629. {
  4630. #if 0
  4631.           /* This is a future direction of this code, but because
  4632.              build_x_function_call cannot always undo what is done
  4633.              in build_component_ref entirely yet, we cannot do this. */
  4634.           yyval.ttype = build_x_function_call (build_component_ref (yyval.ttype, yyvsp[-3].ttype, NULL_TREE, 1), yyvsp[-1].ttype, yyval.ttype);
  4635.           if (TREE_CODE (yyval.ttype) == CALL_EXPR
  4636.               && TREE_TYPE (yyval.ttype) != void_type_node)
  4637.             yyval.ttype = require_complete_type (yyval.ttype);
  4638. #else
  4639.           yyval.ttype = build_method_call (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE,
  4640.                       (LOOKUP_NORMAL|LOOKUP_AGGR));
  4641. #endif
  4642.         ;
  4643.     break;}
  4644. case 254:
  4645. #line 1550 "cp-parse.y"
  4646. {
  4647. #if 0
  4648.           /* This is a future direction of this code, but because
  4649.              build_x_function_call cannot always undo what is done
  4650.              in build_component_ref entirely yet, we cannot do this. */
  4651.           yyval.ttype = build_x_function_call (build_component_ref (yyval.ttype, yyvsp[-1].ttype, NULL_TREE, 1), NULL_TREE, yyval.ttype);
  4652.           if (TREE_CODE (yyval.ttype) == CALL_EXPR
  4653.               && TREE_TYPE (yyval.ttype) != void_type_node)
  4654.             yyval.ttype = require_complete_type (yyval.ttype);
  4655. #else
  4656.           yyval.ttype = build_method_call (yyval.ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE,
  4657.                       (LOOKUP_NORMAL|LOOKUP_AGGR));
  4658. #endif
  4659.         ;
  4660.     break;}
  4661. case 255:
  4662. #line 1565 "cp-parse.y"
  4663. { yyval.ttype = build_scoped_method_call (yyval.ttype, yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
  4664.     break;}
  4665. case 256:
  4666. #line 1567 "cp-parse.y"
  4667. { yyval.ttype = build_scoped_method_call (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE); ;
  4668.     break;}
  4669. case 257:
  4670. #line 1570 "cp-parse.y"
  4671.           if (TREE_CODE (TREE_TYPE (yyvsp[-3].ttype)) 
  4672.               != TREE_CODE (TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (yyvsp[-1].ttype))))
  4673.             cp_error ("`%E' is not of type `%T'", yyvsp[-3].ttype, yyvsp[-1].ttype);
  4674.           yyval.ttype = void_zero_node;
  4675.         ;
  4676.     break;}
  4677. case 258:
  4678. #line 1577 "cp-parse.y"
  4679.           if (yyvsp[-4].ttype != yyvsp[-1].ttype)
  4680.             cp_error ("destructor specifier `%T::~%T()' must have matching names", yyvsp[-4].ttype, yyvsp[-1].ttype);
  4681.           if (TREE_CODE (TREE_TYPE (yyvsp[-5].ttype))
  4682.               != TREE_CODE (TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (yyvsp[-4].ttype))))
  4683.             cp_error ("`%E' is not of type `%T'", yyvsp[-5].ttype, yyvsp[-4].ttype);
  4684.           yyval.ttype = void_zero_node; 
  4685.         ;
  4686.     break;}
  4687. case 259:
  4688. #line 1626 "cp-parse.y"
  4689. { yyval.ttype = NULL_TREE; ;
  4690.     break;}
  4691. case 260:
  4692. #line 1628 "cp-parse.y"
  4693. {
  4694.           yyval.ttype = yyvsp[-1].ttype;
  4695.           pedwarn ("old style placement syntax, use () instead");
  4696.         ;
  4697.     break;}
  4698. case 261:
  4699. #line 1636 "cp-parse.y"
  4700. { yyval.itype = 0; ;
  4701.     break;}
  4702. case 262:
  4703. #line 1638 "cp-parse.y"
  4704. { yyval.itype = 1; ;
  4705.     break;}
  4706. case 263:
  4707. #line 1642 "cp-parse.y"
  4708. { yyval.ttype = NULL_TREE; ;
  4709.     break;}
  4710. case 264:
  4711. #line 1644 "cp-parse.y"
  4712. { if (yyvsp[0].ttype)
  4713.             error ("extra `::' before `delete' ignored");
  4714.           yyval.ttype = error_mark_node;
  4715.         ;
  4716.     break;}
  4717. case 266:
  4718. #line 1654 "cp-parse.y"
  4719. { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
  4720.     break;}
  4721. case 267:
  4722. #line 1659 "cp-parse.y"
  4723. {
  4724.           if (! current_function_parms_stored)
  4725.             store_parm_decls ();
  4726.           setup_vtbl_ptr ();
  4727.           /* Always keep the BLOCK node associated with the outermost
  4728.              pair of curley braces of a function.  These are needed
  4729.              for correct operation of dwarfout.c.  */
  4730.           keep_next_level ();
  4731.         ;
  4732.     break;}
  4733. case 269:
  4734. #line 1672 "cp-parse.y"
  4735. {
  4736.           yyval.ttype = build_x_arrow (yyval.ttype);
  4737.         ;
  4738.     break;}
  4739. case 271:
  4740. #line 1682 "cp-parse.y"
  4741. {
  4742.           resume_momentary (yyvsp[-1].itype);
  4743.           note_list_got_semicolon (yyval.ttype);
  4744.         ;
  4745.     break;}
  4746. case 272:
  4747. #line 1688 "cp-parse.y"
  4748. { tree d;
  4749.           int yes = suspend_momentary ();
  4750.           d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE);
  4751.           finish_decl (d, NULL_TREE, NULL_TREE, 0);
  4752.           resume_momentary (yes);
  4753.           note_list_got_semicolon (yyval.ttype);
  4754.         ;
  4755.     break;}
  4756. case 273:
  4757. #line 1696 "cp-parse.y"
  4758. { resume_momentary ((int) yyvsp[-1].itype); ;
  4759.     break;}
  4760. case 274:
  4761. #line 1699 "cp-parse.y"
  4762. { tree d;
  4763.           int yes = suspend_momentary ();
  4764.           d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE);
  4765.           finish_decl (d, NULL_TREE, NULL_TREE, 0);
  4766.           resume_momentary (yes);
  4767.         ;
  4768.     break;}
  4769. case 275:
  4770. #line 1706 "cp-parse.y"
  4771. {
  4772.           shadow_tag (yyval.ttype);
  4773.           note_list_got_semicolon (yyval.ttype);
  4774.         ;
  4775.     break;}
  4776. case 276:
  4777. #line 1711 "cp-parse.y"
  4778. { warning ("empty declaration"); ;
  4779.     break;}
  4780. case 279:
  4781. #line 1721 "cp-parse.y"
  4782. { yyval.ttype = yyvsp[0].ttype; ;
  4783.     break;}
  4784. case 280:
  4785. #line 1723 "cp-parse.y"
  4786. { yyval.ttype = yyvsp[0].ttype; ;
  4787.     break;}
  4788. case 281:
  4789. #line 1732 "cp-parse.y"
  4790. { if (yyval.ttype) yyval.ttype = list_hash_lookup_or_cons (yyval.ttype); ;
  4791.     break;}
  4792. case 282:
  4793. #line 1734 "cp-parse.y"
  4794. { yyval.ttype = hash_tree_chain (yyvsp[0].ttype, yyval.ttype); ;
  4795.     break;}
  4796. case 283:
  4797. #line 1736 "cp-parse.y"
  4798. { yyval.ttype = hash_tree_chain (yyval.ttype, yyvsp[0].ttype); ;
  4799.     break;}
  4800. case 284:
  4801. #line 1738 "cp-parse.y"
  4802. { yyval.ttype = hash_tree_chain (yyvsp[-1].ttype, hash_chainon (yyvsp[0].ttype, yyval.ttype)); ;
  4803.     break;}
  4804. case 285:
  4805. #line 1744 "cp-parse.y"
  4806. { yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
  4807.     break;}
  4808. case 286:
  4809. #line 1746 "cp-parse.y"
  4810. { if (extra_warnings)
  4811.             warning ("`%s' is not at beginning of declaration",
  4812.                  IDENTIFIER_POINTER (yyval.ttype));
  4813.           yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
  4814.     break;}
  4815. case 287:
  4816. #line 1751 "cp-parse.y"
  4817. { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
  4818.     break;}
  4819. case 288:
  4820. #line 1753 "cp-parse.y"
  4821. { if (extra_warnings)
  4822.             warning ("`%s' is not at beginning of declaration",
  4823.                  IDENTIFIER_POINTER (yyvsp[0].ttype));
  4824.           yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
  4825.     break;}
  4826. case 289:
  4827. #line 1765 "cp-parse.y"
  4828. { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype);
  4829.           TREE_STATIC (yyval.ttype) = 1; ;
  4830.     break;}
  4831. case 290:
  4832. #line 1768 "cp-parse.y"
  4833. { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ;
  4834.     break;}
  4835. case 291:
  4836. #line 1770 "cp-parse.y"
  4837. { yyval.ttype = hash_tree_chain (yyvsp[0].ttype, yyval.ttype);
  4838.           TREE_STATIC (yyval.ttype) = 1; ;
  4839.     break;}
  4840. case 292:
  4841. #line 1773 "cp-parse.y"
  4842. { if (extra_warnings && TREE_STATIC (yyval.ttype))
  4843.             warning ("`%s' is not at beginning of declaration",
  4844.                  IDENTIFIER_POINTER (yyvsp[0].ttype));
  4845.           yyval.ttype = hash_tree_chain (yyvsp[0].ttype, yyval.ttype);
  4846.           TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
  4847.     break;}
  4848. case 293:
  4849. #line 1789 "cp-parse.y"
  4850. { yyval.ttype = get_decl_list (yyval.ttype); ;
  4851.     break;}
  4852. case 294:
  4853. #line 1791 "cp-parse.y"
  4854. { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
  4855.     break;}
  4856. case 295:
  4857. #line 1793 "cp-parse.y"
  4858. { yyval.ttype = decl_tree_cons (NULL_TREE, yyval.ttype, yyvsp[0].ttype); ;
  4859.     break;}
  4860. case 296:
  4861. #line 1795 "cp-parse.y"
  4862. { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[-1].ttype, hash_chainon (yyvsp[0].ttype, yyval.ttype)); ;
  4863.     break;}
  4864. case 297:
  4865. #line 1800 "cp-parse.y"
  4866. { yyval.ttype = get_decl_list (yyval.ttype); ;
  4867.     break;}
  4868. case 298:
  4869. #line 1802 "cp-parse.y"
  4870. { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
  4871.     break;}
  4872. case 303:
  4873. #line 1814 "cp-parse.y"
  4874. { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
  4875.           if (pedantic)
  4876.             pedwarn ("ANSI C++ forbids `typeof'"); ;
  4877.     break;}
  4878. case 304:
  4879. #line 1818 "cp-parse.y"
  4880. { yyval.ttype = groktypename (yyvsp[-1].ttype);
  4881.           if (pedantic)
  4882.             pedwarn ("ANSI C++ forbids `typeof'"); ;
  4883.     break;}
  4884. case 313:
  4885. #line 1843 "cp-parse.y"
  4886. { yyval.ttype = NULL_TREE; ;
  4887.     break;}
  4888. case 314:
  4889. #line 1845 "cp-parse.y"
  4890. { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ;
  4891.     break;}
  4892. case 315:
  4893. #line 1850 "cp-parse.y"
  4894. { current_declspecs = yyvsp[-5].ttype;
  4895.           yyvsp[0].itype = suspend_momentary ();
  4896.           yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype);
  4897.           cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype); ;
  4898.     break;}
  4899. case 316:
  4900. #line 1856 "cp-parse.y"
  4901. { finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 0);
  4902.           yyval.itype = yyvsp[-2].itype; ;
  4903.     break;}
  4904. case 317:
  4905. #line 1859 "cp-parse.y"
  4906. { tree d;
  4907.           current_declspecs = yyvsp[-4].ttype;
  4908.           yyval.itype = suspend_momentary ();
  4909.           d = start_decl (yyvsp[-3].ttype, current_declspecs, 0, yyvsp[-2].ttype);
  4910.           cplus_decl_attributes (d, yyvsp[0].ttype);
  4911.           finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 0); ;
  4912.     break;}
  4913. case 318:
  4914. #line 1869 "cp-parse.y"
  4915. { yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype);
  4916.           cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype); ;
  4917.     break;}
  4918. case 319:
  4919. #line 1873 "cp-parse.y"
  4920. { finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 0); ;
  4921.     break;}
  4922. case 320:
  4923. #line 1875 "cp-parse.y"
  4924. { tree d = start_decl (yyvsp[-3].ttype, current_declspecs, 0, yyvsp[-2].ttype);
  4925.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype);
  4926.           finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 0); ;
  4927.     break;}
  4928. case 321:
  4929. #line 1882 "cp-parse.y"
  4930. { current_declspecs = yyvsp[-5].ttype;
  4931.           yyvsp[0].itype = suspend_momentary ();
  4932.           yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype);
  4933.           cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype); ;
  4934.     break;}
  4935. case 322:
  4936. #line 1888 "cp-parse.y"
  4937. { finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 0);
  4938.           yyval.itype = yyvsp[-2].itype; ;
  4939.     break;}
  4940. case 323:
  4941. #line 1891 "cp-parse.y"
  4942. { tree d;
  4943.           current_declspecs = yyvsp[-4].ttype;
  4944.           yyval.itype = suspend_momentary ();
  4945.           d = start_decl (yyvsp[-3].ttype, current_declspecs, 0, yyvsp[-2].ttype);
  4946.           cplus_decl_attributes (d, yyvsp[0].ttype);
  4947.           finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 0); ;
  4948.     break;}
  4949. case 324:
  4950. #line 1903 "cp-parse.y"
  4951. { yyval.ttype = NULL_TREE; ;
  4952.     break;}
  4953. case 325:
  4954. #line 1905 "cp-parse.y"
  4955. { yyval.ttype = yyvsp[-2].ttype; ;
  4956.     break;}
  4957. case 326:
  4958. #line 1910 "cp-parse.y"
  4959. { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
  4960.     break;}
  4961. case 327:
  4962. #line 1912 "cp-parse.y"
  4963. { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype); ;
  4964.     break;}
  4965. case 328:
  4966. #line 1917 "cp-parse.y"
  4967. { if (strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "packed")
  4968.           && strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "noreturn"))
  4969.         warning ("`%s' attribute directive ignored",
  4970.              IDENTIFIER_POINTER (yyvsp[0].ttype));
  4971.       yyval.ttype = yyvsp[0].ttype; ;
  4972.     break;}
  4973. case 330:
  4974. #line 1924 "cp-parse.y"
  4975. { /* If not "mode (m)", then issue warning.  */
  4976.       if (strcmp (IDENTIFIER_POINTER (yyvsp[-3].ttype), "mode") != 0)
  4977.         {
  4978.           warning ("`%s' attribute directive ignored",
  4979.                IDENTIFIER_POINTER (yyvsp[-3].ttype));
  4980.           yyval.ttype = yyvsp[-3].ttype;
  4981.         }
  4982.       else
  4983.         yyval.ttype = tree_cons (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); ;
  4984.     break;}
  4985. case 331:
  4986. #line 1934 "cp-parse.y"
  4987. { /* if not "aligned(n)", then issue warning */
  4988.       if (strcmp (IDENTIFIER_POINTER (yyvsp[-3].ttype), "aligned") != 0
  4989.           || TREE_CODE (yyvsp[-1].ttype) != INTEGER_CST)
  4990.         {
  4991.           warning ("`%s' attribute directive ignored",
  4992.                IDENTIFIER_POINTER (yyvsp[-3].ttype));
  4993.           yyval.ttype = yyvsp[-3].ttype;
  4994.         }
  4995.       else
  4996.         yyval.ttype = tree_cons (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); ;
  4997.     break;}
  4998. case 332:
  4999. #line 1945 "cp-parse.y"
  5000. { /* if not "format(...)", then issue warning */
  5001.       if (strcmp (IDENTIFIER_POINTER (yyvsp[-7].ttype), "format") != 0
  5002.           || TREE_CODE (yyvsp[-3].ttype) != INTEGER_CST
  5003.           || TREE_CODE (yyvsp[-1].ttype) != INTEGER_CST)
  5004.         {
  5005.           warning ("`%s' attribute directive ignored",
  5006.                IDENTIFIER_POINTER (yyvsp[-7].ttype));
  5007.           yyval.ttype = yyvsp[-7].ttype;
  5008.         }
  5009.       else
  5010.         yyval.ttype = tree_cons (yyvsp[-7].ttype, tree_cons (yyvsp[-5].ttype, tree_cons (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE), NULL_TREE), NULL_TREE); ;
  5011.     break;}
  5012. case 333:
  5013. #line 1961 "cp-parse.y"
  5014. { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
  5015.     break;}
  5016. case 334:
  5017. #line 1963 "cp-parse.y"
  5018. { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
  5019.     break;}
  5020. case 336:
  5021. #line 1969 "cp-parse.y"
  5022. { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
  5023.           TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1;
  5024.           if (pedantic)
  5025.             pedwarn ("ANSI C++ forbids empty initializer braces"); ;
  5026.     break;}
  5027. case 337:
  5028. #line 1974 "cp-parse.y"
  5029. { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype));
  5030.           TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
  5031.     break;}
  5032. case 338:
  5033. #line 1977 "cp-parse.y"
  5034. { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
  5035.           TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
  5036.     break;}
  5037. case 339:
  5038. #line 1980 "cp-parse.y"
  5039. { yyval.ttype = NULL_TREE; ;
  5040.     break;}
  5041. case 340:
  5042. #line 1987 "cp-parse.y"
  5043. { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
  5044.     break;}
  5045. case 341:
  5046. #line 1989 "cp-parse.y"
  5047. { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
  5048.     break;}
  5049. case 342:
  5050. #line 1992 "cp-parse.y"
  5051. { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5052.     break;}
  5053. case 343:
  5054. #line 1994 "cp-parse.y"
  5055. { yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
  5056.     break;}
  5057. case 344:
  5058. #line 1996 "cp-parse.y"
  5059. { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype); ;
  5060.     break;}
  5061. case 345:
  5062. #line 1998 "cp-parse.y"
  5063. { yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
  5064.     break;}
  5065. case 346:
  5066. #line 2003 "cp-parse.y"
  5067. { yyvsp[0].itype = suspend_momentary ();
  5068.           yyval.ttype = start_enum (yyvsp[-1].ttype); ;
  5069.     break;}
  5070. case 347:
  5071. #line 2006 "cp-parse.y"
  5072. { yyval.ttype = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
  5073.           resume_momentary ((int) yyvsp[-4].itype);
  5074.           check_for_missing_semicolon (yyvsp[-3].ttype); ;
  5075.     break;}
  5076. case 348:
  5077. #line 2010 "cp-parse.y"
  5078. { yyval.ttype = finish_enum (start_enum (yyvsp[-2].ttype), NULL_TREE);
  5079.           check_for_missing_semicolon (yyval.ttype); ;
  5080.     break;}
  5081. case 349:
  5082. #line 2013 "cp-parse.y"
  5083. { yyvsp[0].itype = suspend_momentary ();
  5084.           yyval.ttype = start_enum (make_anon_name ()); ;
  5085.     break;}
  5086. case 350:
  5087. #line 2016 "cp-parse.y"
  5088. { yyval.ttype = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
  5089.           resume_momentary ((int) yyvsp[-5].itype);
  5090.           check_for_missing_semicolon (yyvsp[-3].ttype); ;
  5091.     break;}
  5092. case 351:
  5093. #line 2020 "cp-parse.y"
  5094. { yyval.ttype = finish_enum (start_enum (make_anon_name()), NULL_TREE);
  5095.           check_for_missing_semicolon (yyval.ttype); ;
  5096.     break;}
  5097. case 352:
  5098. #line 2023 "cp-parse.y"
  5099. { yyval.ttype = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE); ;
  5100.     break;}
  5101. case 353:
  5102. #line 2027 "cp-parse.y"
  5103. {
  5104.           int semi;
  5105.           tree id;
  5106.  
  5107. #if 0
  5108.           /* Need to rework class nesting in the
  5109.              presence of nested classes, etc.  */
  5110.           shadow_tag (CLASSTYPE_AS_LIST (yyval.ttype)); */
  5111. #endif
  5112.           if (yychar == YYEMPTY)
  5113.             yychar = YYLEX;
  5114.           semi = yychar == ';';
  5115.           /* finish_struct nukes this anyway; if
  5116.              finish_exception does too, then it can go. */
  5117.           if (semi)
  5118.             note_got_semicolon (yyval.ttype);
  5119.  
  5120.           if (TREE_CODE (yyval.ttype) == ENUMERAL_TYPE)
  5121.             /* $$ = $1 from default rule.  */;
  5122.           else if (CLASSTYPE_DECLARED_EXCEPTION (yyval.ttype))
  5123.             {
  5124.               if (! semi)
  5125.             yyval.ttype = finish_exception (yyval.ttype, yyvsp[-1].ttype);
  5126.               else
  5127.             warning ("empty exception declaration\n");
  5128.             }
  5129.           else
  5130.             {
  5131.               yyval.ttype = finish_struct (yyval.ttype, yyvsp[-1].ttype, semi);
  5132.               if (semi) note_got_semicolon (yyval.ttype);
  5133.             }
  5134.  
  5135.           pop_obstacks ();
  5136.  
  5137.           id = TYPE_IDENTIFIER (yyval.ttype);
  5138.           if (id && IDENTIFIER_TEMPLATE (id))
  5139.             {
  5140.               tree decl;
  5141.  
  5142.               /* I don't know if the copying of this TYPE_DECL is
  5143.                * really needed.  However, it's such a small per-
  5144.                * formance penalty that the extra safety is a bargain.
  5145.                * - niklas@appli.se
  5146.                */
  5147.               push_obstacks (&permanent_obstack, &permanent_obstack);
  5148.               decl = copy_node (lookup_name (id, 0));
  5149.               if (DECL_LANG_SPECIFIC (decl))
  5150.             copy_lang_decl (decl);
  5151.               pop_obstacks ();
  5152.               undo_template_name_overload (id, 0);
  5153.               pushdecl_top_level (decl);
  5154.             }
  5155.           if (! semi)
  5156.             check_for_missing_semicolon (yyval.ttype); ;
  5157.     break;}
  5158. case 354:
  5159. #line 2082 "cp-parse.y"
  5160. {
  5161. #if 0
  5162.   /* It's no longer clear what the following error is supposed to
  5163.      accomplish.  If it turns out to be needed, add a comment why.  */
  5164.           if (TYPE_BINFO_BASETYPES (yyval.ttype) && !TYPE_SIZE (yyval.ttype))
  5165.             {
  5166.               error ("incomplete definition of type `%s'",
  5167.                  TYPE_NAME_STRING (yyval.ttype));
  5168.               yyval.ttype = error_mark_node;
  5169.             }
  5170. #endif
  5171.         ;
  5172.     break;}
  5173. case 358:
  5174. #line 2104 "cp-parse.y"
  5175. { if (pedantic) pedwarn ("comma at end of enumerator list"); ;
  5176.     break;}
  5177. case 360:
  5178. #line 2109 "cp-parse.y"
  5179. { error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
  5180.     break;}
  5181. case 361:
  5182. #line 2111 "cp-parse.y"
  5183. { error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
  5184.     break;}
  5185. case 362:
  5186. #line 2113 "cp-parse.y"
  5187. { error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
  5188.     break;}
  5189. case 363:
  5190. #line 2115 "cp-parse.y"
  5191. { error ("no body nor ';' separates two class, struct or union declarations"); ;
  5192.     break;}
  5193. case 364:
  5194. #line 2120 "cp-parse.y"
  5195. { aggr1: current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
  5196.     break;}
  5197. case 365:
  5198. #line 2122 "cp-parse.y"
  5199. { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
  5200.     break;}
  5201. case 366:
  5202. #line 2124 "cp-parse.y"
  5203. { yyungetc (':', 1); goto aggr1; ;
  5204.     break;}
  5205. case 367:
  5206. #line 2126 "cp-parse.y"
  5207. { yyungetc ('{', 1);
  5208.         aggr2:
  5209.           current_aggr = yyval.ttype;
  5210.           yyval.ttype = yyvsp[-1].ttype;
  5211.           overload_template_name (yyval.ttype, 0); ;
  5212.     break;}
  5213. case 368:
  5214. #line 2132 "cp-parse.y"
  5215. { yyungetc (':', 1); goto aggr2; ;
  5216.     break;}
  5217. case 369:
  5218. #line 2137 "cp-parse.y"
  5219. { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
  5220.     break;}
  5221. case 370:
  5222. #line 2142 "cp-parse.y"
  5223. {
  5224.           yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE);
  5225.         ;
  5226.     break;}
  5227. case 371:
  5228. #line 2146 "cp-parse.y"
  5229. {
  5230.           if (yyvsp[0].ttype)
  5231.             yyval.ttype = xref_tag (current_aggr, yyvsp[-2].ttype, yyvsp[0].ttype);
  5232.           else
  5233.             yyval.ttype = yyvsp[-1].ttype;
  5234.         ;
  5235.     break;}
  5236. case 372:
  5237. #line 2154 "cp-parse.y"
  5238. {
  5239.           yyval.ttype = xref_defn_tag (current_aggr, yyvsp[0].ttype, NULL_TREE);
  5240.         ;
  5241.     break;}
  5242. case 373:
  5243. #line 2158 "cp-parse.y"
  5244. {
  5245.           if (yyvsp[0].ttype)
  5246.             yyval.ttype = xref_defn_tag (current_aggr, yyvsp[-2].ttype, yyvsp[0].ttype);
  5247.           else
  5248.             yyval.ttype = yyvsp[-1].ttype;
  5249.         ;
  5250.     break;}
  5251. case 374:
  5252. #line 2167 "cp-parse.y"
  5253. { yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), NULL_TREE);
  5254.           yyungetc ('{', 1); ;
  5255.     break;}
  5256. case 377:
  5257. #line 2175 "cp-parse.y"
  5258. { yyval.ttype = NULL_TREE; ;
  5259.     break;}
  5260. case 378:
  5261. #line 2177 "cp-parse.y"
  5262. { yyungetc(':', 1); yyval.ttype = NULL_TREE; ;
  5263.     break;}
  5264. case 379:
  5265. #line 2179 "cp-parse.y"
  5266. { yyval.ttype = yyvsp[0].ttype; ;
  5267.     break;}
  5268. case 381:
  5269. #line 2185 "cp-parse.y"
  5270. { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
  5271.     break;}
  5272. case 382:
  5273. #line 2190 "cp-parse.y"
  5274. { if (! is_aggr_typedef (yyval.ttype, 1))
  5275.             yyval.ttype = NULL_TREE;
  5276.           else yyval.ttype = build_tree_list ((tree)visibility_default, yyval.ttype); ;
  5277.     break;}
  5278. case 383:
  5279. #line 2194 "cp-parse.y"
  5280. { if (! is_aggr_typedef (yyval.ttype, 1))
  5281.             yyval.ttype = NULL_TREE;
  5282.           else yyval.ttype = build_tree_list ((tree)visibility_default, yyval.ttype); ;
  5283.     break;}
  5284. case 384:
  5285. #line 2198 "cp-parse.y"
  5286. { if (! is_aggr_typedef (yyvsp[0].ttype, 1))
  5287.             yyval.ttype = NULL_TREE;
  5288.           else yyval.ttype = build_tree_list ((tree) yyval.ttype, yyvsp[0].ttype); ;
  5289.     break;}
  5290. case 385:
  5291. #line 2202 "cp-parse.y"
  5292. { if (! is_aggr_typedef (yyvsp[0].ttype, 1))
  5293.             yyval.ttype = NULL_TREE;
  5294.           else yyval.ttype = build_tree_list ((tree) yyval.ttype, yyvsp[0].ttype); ;
  5295.     break;}
  5296. case 386:
  5297. #line 2209 "cp-parse.y"
  5298. {
  5299.             /* Kludge!!! See rule "template_type" and the code
  5300.            * dealing with "template_type_seen_before_scope" in
  5301.            * yylex(). */
  5302.             yyval.ttype = yyvsp[0].ttype;
  5303.         ;
  5304.     break;}
  5305. case 387:
  5306. #line 2218 "cp-parse.y"
  5307. {
  5308.             extern tree template_type_seen_before_scope;
  5309.           tree id = yyvsp[0].ttype ? TYPE_IDENTIFIER (yyvsp[0].ttype) : yyvsp[-2].ttype;
  5310.  
  5311.             /* Check the rule template_type to get this... */
  5312.           if (yychar == YYEMPTY)
  5313.             yychar = YYLEX;
  5314.           if (yychar == SCOPE) {
  5315.             template_type_seen_before_scope = id;
  5316.             yychar = YYLEX;
  5317.           }
  5318.         ;
  5319.     break;}
  5320. case 390:
  5321. #line 2236 "cp-parse.y"
  5322. { if (yyval.ttype != ridpointers[(int)RID_VIRTUAL])
  5323.             sorry ("non-virtual visibility");
  5324.           yyval.itype = visibility_default_virtual; ;
  5325.     break;}
  5326. case 391:
  5327. #line 2240 "cp-parse.y"
  5328. { int err = 0;
  5329.           if (yyvsp[0].itype == visibility_protected)
  5330.             {
  5331.               warning ("`protected' visibility not implemented");
  5332.               yyvsp[0].itype = visibility_public;
  5333.               err++;
  5334.             }
  5335.           else if (yyvsp[0].itype == visibility_public)
  5336.             {
  5337.               if (yyvsp[-1].itype == visibility_private)
  5338.             {
  5339.             mixed:
  5340.               error ("base class cannot be public and private");
  5341.             }
  5342.               else if (yyvsp[-1].itype == visibility_default_virtual)
  5343.             yyval.itype = visibility_public_virtual;
  5344.             }
  5345.           else /* $2 == visibility_private */
  5346.             {
  5347.               if (yyvsp[-1].itype == visibility_public)
  5348.             goto mixed;
  5349.               else if (yyvsp[-1].itype == visibility_default_virtual)
  5350.             yyval.itype = visibility_private_virtual;
  5351.             }
  5352.         ;
  5353.     break;}
  5354. case 392:
  5355. #line 2266 "cp-parse.y"
  5356. { if (yyvsp[0].ttype != ridpointers[(int)RID_VIRTUAL])
  5357.             sorry ("non-virtual visibility");
  5358.           if (yyval.itype == visibility_public)
  5359.             yyval.itype = visibility_public_virtual;
  5360.           else if (yyval.itype == visibility_private)
  5361.             yyval.itype = visibility_private_virtual; ;
  5362.     break;}
  5363. case 393:
  5364. #line 2275 "cp-parse.y"
  5365. { tree t;
  5366.           push_obstacks_nochange ();
  5367.           end_temporary_allocation ();
  5368.  
  5369.           if (! IS_AGGR_TYPE (yyvsp[-1].ttype))
  5370.             {
  5371.               yyvsp[-1].ttype = make_lang_type (RECORD_TYPE);
  5372.               TYPE_NAME (yyvsp[-1].ttype) = get_identifier ("erroneous type");
  5373.             }
  5374.           if (TYPE_SIZE (yyvsp[-1].ttype))
  5375.             duplicate_tag_error (yyvsp[-1].ttype);
  5376.                   if (TYPE_SIZE (yyvsp[-1].ttype) || TYPE_BEING_DEFINED (yyvsp[-1].ttype))
  5377.                     {
  5378.                       t = make_lang_type (TREE_CODE (yyvsp[-1].ttype));
  5379.                       pushtag (TYPE_IDENTIFIER (yyvsp[-1].ttype), t);
  5380.                       yyvsp[-1].ttype = t;
  5381.                     }
  5382.           pushclass (yyvsp[-1].ttype, 0);
  5383.           TYPE_BEING_DEFINED (yyvsp[-1].ttype) = 1;
  5384.           t = TYPE_IDENTIFIER (yyvsp[-1].ttype);
  5385.           if (t && IDENTIFIER_TEMPLATE (t))
  5386.             overload_template_name (t, 1);
  5387.         ;
  5388.     break;}
  5389. case 394:
  5390. #line 2302 "cp-parse.y"
  5391. { yyval.ttype = NULL_TREE; ;
  5392.     break;}
  5393. case 395:
  5394. #line 2304 "cp-parse.y"
  5395. { yyval.ttype = build_tree_list ((tree)visibility_default, yyval.ttype); ;
  5396.     break;}
  5397. case 396:
  5398. #line 2306 "cp-parse.y"
  5399. { yyval.ttype = chainon (yyval.ttype, build_tree_list ((tree) yyvsp[-2].itype, yyvsp[0].ttype)); ;
  5400.     break;}
  5401. case 398:
  5402. #line 2314 "cp-parse.y"
  5403. { if (yyval.ttype == void_type_node) yyval.ttype = NULL_TREE; ;
  5404.     break;}
  5405. case 399:
  5406. #line 2316 "cp-parse.y"
  5407. { /* In pushdecl, we created a reverse list of names
  5408.              in this binding level.  Make sure that the chain
  5409.              of what we're trying to add isn't the item itself
  5410.              (which can happen with what pushdecl's doing).  */
  5411.           if (yyvsp[0].ttype != NULL_TREE && yyvsp[0].ttype != void_type_node)
  5412.             {
  5413.               if (TREE_CHAIN (yyvsp[0].ttype) != yyval.ttype)
  5414.             yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
  5415.               else
  5416.             yyval.ttype = yyvsp[0].ttype;
  5417.             }
  5418.         ;
  5419.     break;}
  5420. case 401:
  5421. #line 2333 "cp-parse.y"
  5422. { do_components:
  5423.           yyval.ttype = grok_x_components (yyval.ttype, yyvsp[-1].ttype);
  5424.           end_exception_decls ();
  5425.         ;
  5426.     break;}
  5427. case 402:
  5428. #line 2338 "cp-parse.y"
  5429. { yyval.ttype = groktypefield (yyval.ttype, yyvsp[-2].ttype); ;
  5430.     break;}
  5431. case 403:
  5432. #line 2340 "cp-parse.y"
  5433. { error ("missing ';' before right brace");
  5434.           yyungetc ('}', 0);
  5435.           yyval.ttype = groktypefield (yyval.ttype, yyvsp[-2].ttype); ;
  5436.     break;}
  5437. case 404:
  5438. #line 2344 "cp-parse.y"
  5439. { yyval.ttype = groktypefield (yyval.ttype, empty_parms ()); ;
  5440.     break;}
  5441. case 405:
  5442. #line 2346 "cp-parse.y"
  5443. { error ("missing ';' before right brace");
  5444.           yyungetc ('}', 0);
  5445.           yyval.ttype = groktypefield (yyval.ttype, empty_parms ()); ;
  5446.     break;}
  5447. case 406:
  5448. #line 2350 "cp-parse.y"
  5449. { goto do_components; ;
  5450.     break;}
  5451. case 407:
  5452. #line 2353 "cp-parse.y"
  5453. { yyval.ttype = grokfield (yyvsp[-1].ttype, yyval.ttype,
  5454.                   NULL_TREE, NULL_TREE, NULL_TREE); ;
  5455.     break;}
  5456. case 408:
  5457. #line 2356 "cp-parse.y"
  5458. { error ("missing ';' before right brace");
  5459.           yyungetc ('}', 0);
  5460.           goto do_components; ;
  5461.     break;}
  5462. case 409:
  5463. #line 2360 "cp-parse.y"
  5464. { yyval.ttype = groktypefield (yyval.ttype, yyvsp[-2].ttype); ;
  5465.     break;}
  5466. case 410:
  5467. #line 2362 "cp-parse.y"
  5468. { error ("missing ';' before right brace");
  5469.           yyungetc ('}', 0);
  5470.           yyval.ttype = groktypefield (yyval.ttype, yyvsp[-2].ttype); ;
  5471.     break;}
  5472. case 411:
  5473. #line 2366 "cp-parse.y"
  5474. { yyval.ttype = groktypefield (yyval.ttype, empty_parms ()); ;
  5475.     break;}
  5476. case 412:
  5477. #line 2368 "cp-parse.y"
  5478. { error ("missing ';' before right brace");
  5479.           yyungetc ('}', 0);
  5480.           yyval.ttype = groktypefield (yyval.ttype, empty_parms ()); ;
  5481.     break;}
  5482. case 413:
  5483. #line 2372 "cp-parse.y"
  5484. { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
  5485.     break;}
  5486. case 414:
  5487. #line 2374 "cp-parse.y"
  5488. { error ("missing ';' before right brace");
  5489.           yyungetc ('}', 0);
  5490.           yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
  5491.     break;}
  5492. case 415:
  5493. #line 2378 "cp-parse.y"
  5494. { yyval.ttype = NULL_TREE; ;
  5495.     break;}
  5496. case 416:
  5497. #line 2383 "cp-parse.y"
  5498. { yyval.ttype = finish_method (yyval.ttype); ;
  5499.     break;}
  5500. case 417:
  5501. #line 2385 "cp-parse.y"
  5502. { yyval.ttype = finish_method (yyval.ttype); ;
  5503.     break;}
  5504. case 418:
  5505. #line 2387 "cp-parse.y"
  5506. { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE); ;
  5507.     break;}
  5508. case 419:
  5509. #line 2389 "cp-parse.y"
  5510. { error ("missing ';' before right brace");
  5511.           yyungetc ('}', 0);
  5512.           yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE); ;
  5513.     break;}
  5514. case 420:
  5515. #line 2396 "cp-parse.y"
  5516. { yyval.ttype = NULL_TREE; ;
  5517.     break;}
  5518. case 422:
  5519. #line 2399 "cp-parse.y"
  5520. {
  5521.           /* In this context, void_type_node encodes
  5522.              friends.  They have been recorded elsewhere.  */
  5523.           if (yyval.ttype == void_type_node)
  5524.             yyval.ttype = yyvsp[0].ttype;
  5525.           else
  5526.             yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
  5527.         ;
  5528.     break;}
  5529. case 423:
  5530. #line 2411 "cp-parse.y"
  5531. { current_declspecs = yyvsp[-4].ttype;
  5532.           yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype);
  5533.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  5534.     break;}
  5535. case 424:
  5536. #line 2415 "cp-parse.y"
  5537. { current_declspecs = yyvsp[-6].ttype;
  5538.           yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-4].ttype, yyvsp[0].ttype, yyvsp[-3].ttype);
  5539.           cplus_decl_attributes (yyval.ttype, yyvsp[-2].ttype); ;
  5540.     break;}
  5541. case 425:
  5542. #line 2419 "cp-parse.y"
  5543. { current_declspecs = yyvsp[-4].ttype;
  5544.           yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
  5545.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  5546.     break;}
  5547. case 426:
  5548. #line 2423 "cp-parse.y"
  5549. { current_declspecs = yyvsp[-4].ttype;
  5550.           yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
  5551.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  5552.     break;}
  5553. case 427:
  5554. #line 2427 "cp-parse.y"
  5555. { current_declspecs = yyvsp[-3].ttype;
  5556.           yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[-1].ttype);
  5557.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  5558.     break;}
  5559. case 428:
  5560. #line 2434 "cp-parse.y"
  5561. { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype);
  5562.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  5563.     break;}
  5564. case 429:
  5565. #line 2437 "cp-parse.y"
  5566. { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-4].ttype, yyvsp[0].ttype, yyvsp[-3].ttype);
  5567.           cplus_decl_attributes (yyval.ttype, yyvsp[-2].ttype); ;
  5568.     break;}
  5569. case 430:
  5570. #line 2440 "cp-parse.y"
  5571. { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
  5572.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  5573.     break;}
  5574. case 431:
  5575. #line 2443 "cp-parse.y"
  5576. { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
  5577.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  5578.     break;}
  5579. case 432:
  5580. #line 2446 "cp-parse.y"
  5581. { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[-1].ttype);
  5582.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  5583.     break;}
  5584. case 434:
  5585. #line 2457 "cp-parse.y"
  5586. { TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
  5587.     break;}
  5588. case 435:
  5589. #line 2462 "cp-parse.y"
  5590. { yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE); ;
  5591.     break;}
  5592. case 436:
  5593. #line 2464 "cp-parse.y"
  5594. { yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype); ;
  5595.     break;}
  5596. case 437:
  5597. #line 2470 "cp-parse.y"
  5598. { yyval.ttype = build_decl_list (yyval.ttype, yyvsp[0].ttype); ;
  5599.     break;}
  5600. case 438:
  5601. #line 2472 "cp-parse.y"
  5602. { yyval.ttype = build_decl_list (yyval.ttype, yyvsp[0].ttype); ;
  5603.     break;}
  5604. case 439:
  5605. #line 2478 "cp-parse.y"
  5606. { yyval.ttype = NULL_TREE; ;
  5607.     break;}
  5608. case 441:
  5609. #line 2481 "cp-parse.y"
  5610. { yyval.ttype = yyvsp[0].ttype; ;
  5611.     break;}
  5612. case 442:
  5613. #line 2486 "cp-parse.y"
  5614. { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ;
  5615.     break;}
  5616. case 443:
  5617. #line 2488 "cp-parse.y"
  5618. { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
  5619.     break;}
  5620. case 444:
  5621. #line 2493 "cp-parse.y"
  5622. { yyval.ttype = NULL_TREE; ;
  5623.     break;}
  5624. case 445:
  5625. #line 2495 "cp-parse.y"
  5626. { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
  5627.     break;}
  5628. case 446:
  5629. #line 2503 "cp-parse.y"
  5630. { yyval.itype = suspend_momentary (); ;
  5631.     break;}
  5632. case 447:
  5633. #line 2504 "cp-parse.y"
  5634. { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ;
  5635.     break;}
  5636. case 448:
  5637. #line 2510 "cp-parse.y"
  5638. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5639.     break;}
  5640. case 449:
  5641. #line 2512 "cp-parse.y"
  5642. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5643.     break;}
  5644. case 450:
  5645. #line 2514 "cp-parse.y"
  5646. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ;
  5647.     break;}
  5648. case 451:
  5649. #line 2516 "cp-parse.y"
  5650. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, NULL_TREE, NULL_TREE); ;
  5651.     break;}
  5652. case 452:
  5653. #line 2518 "cp-parse.y"
  5654. { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
  5655.     break;}
  5656. case 453:
  5657. #line 2520 "cp-parse.y"
  5658. { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
  5659.     break;}
  5660. case 454:
  5661. #line 2522 "cp-parse.y"
  5662. { yyval.ttype = yyvsp[-1].ttype; ;
  5663.     break;}
  5664. case 455:
  5665. #line 2524 "cp-parse.y"
  5666. { yyval.ttype = make_pointer_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
  5667.     break;}
  5668. case 456:
  5669. #line 2526 "cp-parse.y"
  5670. { see_typename (); ;
  5671.     break;}
  5672. case 458:
  5673. #line 2529 "cp-parse.y"
  5674. { yyval.ttype = make_reference_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
  5675.     break;}
  5676. case 459:
  5677. #line 2531 "cp-parse.y"
  5678. { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5679.     break;}
  5680. case 460:
  5681. #line 2533 "cp-parse.y"
  5682. { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5683.     break;}
  5684. case 462:
  5685. #line 2539 "cp-parse.y"
  5686. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5687.     break;}
  5688. case 463:
  5689. #line 2541 "cp-parse.y"
  5690. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5691.     break;}
  5692. case 464:
  5693. #line 2543 "cp-parse.y"
  5694. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ;
  5695.     break;}
  5696. case 465:
  5697. #line 2545 "cp-parse.y"
  5698. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, NULL_TREE, NULL_TREE); ;
  5699.     break;}
  5700. case 466:
  5701. #line 2547 "cp-parse.y"
  5702. { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
  5703.     break;}
  5704. case 467:
  5705. #line 2549 "cp-parse.y"
  5706. { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
  5707.     break;}
  5708. case 468:
  5709. #line 2551 "cp-parse.y"
  5710. { yyval.ttype = yyvsp[-1].ttype; ;
  5711.     break;}
  5712. case 469:
  5713. #line 2553 "cp-parse.y"
  5714. { see_typename (); ;
  5715.     break;}
  5716. case 471:
  5717. #line 2556 "cp-parse.y"
  5718. { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5719.     break;}
  5720. case 472:
  5721. #line 2558 "cp-parse.y"
  5722. { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5723.     break;}
  5724. case 473:
  5725. #line 2566 "cp-parse.y"
  5726. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5727.     break;}
  5728. case 474:
  5729. #line 2568 "cp-parse.y"
  5730. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5731.     break;}
  5732. case 475:
  5733. #line 2570 "cp-parse.y"
  5734. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ;
  5735.     break;}
  5736. case 476:
  5737. #line 2572 "cp-parse.y"
  5738. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, NULL_TREE, NULL_TREE); ;
  5739.     break;}
  5740. case 477:
  5741. #line 2574 "cp-parse.y"
  5742. { yyval.ttype = yyvsp[-1].ttype; ;
  5743.     break;}
  5744. case 478:
  5745. #line 2576 "cp-parse.y"
  5746. { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5747.     break;}
  5748. case 479:
  5749. #line 2578 "cp-parse.y"
  5750. { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5751.     break;}
  5752. case 480:
  5753. #line 2580 "cp-parse.y"
  5754. { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
  5755.     break;}
  5756. case 481:
  5757. #line 2582 "cp-parse.y"
  5758. { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
  5759.     break;}
  5760. case 482:
  5761. #line 2584 "cp-parse.y"
  5762. { see_typename (); ;
  5763.     break;}
  5764. case 483:
  5765. #line 2588 "cp-parse.y"
  5766. { see_typename (); ;
  5767.     break;}
  5768. case 484:
  5769. #line 2591 "cp-parse.y"
  5770. {
  5771.         destructor_name:
  5772.           see_typename ();
  5773.           yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype);
  5774.         ;
  5775.     break;}
  5776. case 485:
  5777. #line 2597 "cp-parse.y"
  5778. { goto destructor_name; ;
  5779.     break;}
  5780. case 486:
  5781. #line 2599 "cp-parse.y"
  5782. { goto destructor_name; ;
  5783.     break;}
  5784. case 487:
  5785. #line 2601 "cp-parse.y"
  5786. { see_typename ();
  5787.           if (TREE_CODE (yyval.ttype) != SCOPE_REF)
  5788.             yyval.ttype = build_push_scope (yyval.ttype, yyvsp[0].ttype);
  5789.           else if (TREE_OPERAND (yyval.ttype, 1) == NULL_TREE)
  5790.             TREE_OPERAND (yyval.ttype, 1) = yyvsp[0].ttype;
  5791.           else
  5792.             yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype);
  5793.         ;
  5794.     break;}
  5795. case 488:
  5796. #line 2610 "cp-parse.y"
  5797. { yyval.ttype = build_push_scope (yyval.ttype, yyvsp[0].ttype); ;
  5798.     break;}
  5799. case 489:
  5800. #line 2612 "cp-parse.y"
  5801. { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ;
  5802.     break;}
  5803. case 490:
  5804. #line 2614 "cp-parse.y"
  5805. { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ;
  5806.     break;}
  5807. case 491:
  5808. #line 2616 "cp-parse.y"
  5809. { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-2].ttype, empty_parms (), yyvsp[0].ttype)); ;
  5810.     break;}
  5811. case 492:
  5812. #line 2618 "cp-parse.y"
  5813. { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, NULL_TREE, NULL_TREE)); ;
  5814.     break;}
  5815. case 493:
  5816. #line 2621 "cp-parse.y"
  5817. { yyval.ttype = build_push_scope (yyval.ttype, yyvsp[0].ttype); ;
  5818.     break;}
  5819. case 494:
  5820. #line 2623 "cp-parse.y"
  5821. { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ;
  5822.     break;}
  5823. case 495:
  5824. #line 2625 "cp-parse.y"
  5825. { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ;
  5826.     break;}
  5827. case 496:
  5828. #line 2627 "cp-parse.y"
  5829. { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-2].ttype, empty_parms (), yyvsp[0].ttype)); ;
  5830.     break;}
  5831. case 497:
  5832. #line 2629 "cp-parse.y"
  5833. { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, NULL_TREE, NULL_TREE)); ;
  5834.     break;}
  5835. case 498:
  5836. #line 2631 "cp-parse.y"
  5837. { yyval.ttype = build_parse_node (SCOPE_REF, NULL_TREE, yyvsp[0].ttype); ;
  5838.     break;}
  5839. case 499:
  5840. #line 2635 "cp-parse.y"
  5841. { tree t;
  5842.                   do_id_scope:
  5843.  
  5844.           t = resolve_scope_to_name (NULL_TREE, yyval.ttype);
  5845.           if (t == NULL_TREE)
  5846.             {
  5847.               cp_error ("`%T' is not a valid scope", yyval.ttype);
  5848.               yyval.ttype = error_mark_node; 
  5849.             }
  5850.           else
  5851.             yyval.ttype = t;
  5852.         ;
  5853.     break;}
  5854. case 500:
  5855. #line 2648 "cp-parse.y"
  5856. { goto do_id_scope; ;
  5857.     break;}
  5858. case 501:
  5859. #line 2650 "cp-parse.y"
  5860. {
  5861.                   if (yyval.ttype == error_mark_node)
  5862.                     /* leave it alone */;
  5863.                   else
  5864.             {
  5865.               yyval.ttype = resolve_scope_to_name (NULL_TREE, TYPE_IDENTIFIER (yyval.ttype));
  5866.               if (yyval.ttype == NULL_TREE)
  5867.             {
  5868.               error ("undefined explicitly scoped type");
  5869.               yyval.ttype = error_mark_node; 
  5870.             }
  5871.             }
  5872. /*                  if ($3) popclass (1); */
  5873.         ;
  5874.     break;}
  5875. case 504:
  5876. #line 2671 "cp-parse.y"
  5877. {
  5878.             /* Kludge!!! See rule "template_type" and the code
  5879.            * dealing with "template_type_seen_before_scope" in
  5880.            * yylex(). */
  5881.           yyval.ttype = yyvsp[0].ttype;
  5882.         ;
  5883.     break;}
  5884. case 505:
  5885. #line 2693 "cp-parse.y"
  5886. { see_typename ();
  5887.           yyval.ttype = yyvsp[-1].ttype; ;
  5888.     break;}
  5889. case 506:
  5890. #line 2697 "cp-parse.y"
  5891. { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5892.     break;}
  5893. case 507:
  5894. #line 2699 "cp-parse.y"
  5895. { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
  5896.     break;}
  5897. case 508:
  5898. #line 2701 "cp-parse.y"
  5899. { see_typename (); ;
  5900.     break;}
  5901. case 509:
  5902. #line 2703 "cp-parse.y"
  5903. { yyval.ttype = yyvsp[-1].ttype; ;
  5904.     break;}
  5905. case 510:
  5906. #line 2705 "cp-parse.y"
  5907. { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5908.     break;}
  5909. case 511:
  5910. #line 2707 "cp-parse.y"
  5911. { yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
  5912.     break;}
  5913. case 512:
  5914. #line 2709 "cp-parse.y"
  5915. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5916.     break;}
  5917. case 513:
  5918. #line 2711 "cp-parse.y"
  5919. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ;
  5920.     break;}
  5921. case 514:
  5922. #line 2713 "cp-parse.y"
  5923. { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
  5924.     break;}
  5925. case 515:
  5926. #line 2715 "cp-parse.y"
  5927. { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
  5928.     break;}
  5929. case 516:
  5930. #line 2717 "cp-parse.y"
  5931. { yyval.ttype = build_parse_node (CALL_EXPR, NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5932.     break;}
  5933. case 517:
  5934. #line 2719 "cp-parse.y"
  5935. { yyval.ttype = build_parse_node (CALL_EXPR, NULL_TREE, empty_parms (), yyvsp[0].ttype); ;
  5936.     break;}
  5937. case 518:
  5938. #line 2721 "cp-parse.y"
  5939. { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
  5940.     break;}
  5941. case 519:
  5942. #line 2723 "cp-parse.y"
  5943. { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
  5944.     break;}
  5945. case 520:
  5946. #line 2728 "cp-parse.y"
  5947. { tree t;
  5948.           t = yyval.ttype;
  5949.           while (TREE_OPERAND (t, 1))
  5950.             t = TREE_OPERAND (t, 1);
  5951.           TREE_OPERAND (t, 1) = build_parse_node (INDIRECT_REF, 0);
  5952.         ;
  5953.     break;}
  5954. case 521:
  5955. #line 2735 "cp-parse.y"
  5956. { tree t;
  5957.           t = yyval.ttype;
  5958.           while (TREE_OPERAND (t, 1))
  5959.             t = TREE_OPERAND (t, 1);
  5960.           TREE_OPERAND (t, 1) = build_parse_node (INDIRECT_REF, yyvsp[0].ttype);
  5961.         ;
  5962.     break;}
  5963. case 522:
  5964. #line 2742 "cp-parse.y"
  5965. { tree t;
  5966.           t = yyval.ttype;
  5967.           while (TREE_OPERAND (t, 1))
  5968.             t = TREE_OPERAND (t, 1);
  5969.           TREE_OPERAND (t, 1) = build_parse_node (ADDR_EXPR, 0);
  5970.         ;
  5971.     break;}
  5972. case 523:
  5973. #line 2749 "cp-parse.y"
  5974. { tree t;
  5975.           t = yyval.ttype;
  5976.           while (TREE_OPERAND (t, 1))
  5977.             t = TREE_OPERAND (t, 1);
  5978.           TREE_OPERAND (t, 1) = build_parse_node (ADDR_EXPR, yyvsp[0].ttype);
  5979.         ;
  5980.     break;}
  5981. case 524:
  5982. #line 2759 "cp-parse.y"
  5983. { tree t;
  5984.           t = yyval.ttype;
  5985.           while (TREE_OPERAND (t, 1))
  5986.             t = TREE_OPERAND (t, 1);
  5987.           TREE_OPERAND (t, 1) = build_parse_node (INDIRECT_REF, yyvsp[0].ttype);
  5988.         ;
  5989.     break;}
  5990. case 525:
  5991. #line 2766 "cp-parse.y"
  5992. { tree t;
  5993.           t = yyval.ttype;
  5994.           while (TREE_OPERAND (t, 1))
  5995.             t = TREE_OPERAND (t, 1);
  5996.           TREE_OPERAND (t, 1) = build_parse_node (ADDR_EXPR, yyvsp[0].ttype);
  5997.         ;
  5998.     break;}
  5999. case 531:
  6000. #line 2793 "cp-parse.y"
  6001. { emit_line_note (input_filename, lineno);
  6002.           pushlevel (0);
  6003.           clear_last_expr ();
  6004.           push_momentary ();
  6005.           expand_start_bindings (0); ;
  6006.     break;}
  6007. case 533:
  6008. #line 2805 "cp-parse.y"
  6009. { if (pedantic)
  6010.             pedwarn ("ANSI C++ forbids label declarations"); ;
  6011.     break;}
  6012. case 536:
  6013. #line 2816 "cp-parse.y"
  6014. { tree link;
  6015.           for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
  6016.             {
  6017.               tree label = shadow_label (TREE_VALUE (link));
  6018.               C_DECLARED_LABEL_FLAG (label) = 1;
  6019.               declare_nonlocal_label (label);
  6020.             }
  6021.         ;
  6022.     break;}
  6023. case 537:
  6024. #line 2830 "cp-parse.y"
  6025. {;
  6026.     break;}
  6027. case 539:
  6028. #line 2835 "cp-parse.y"
  6029. { pop_implicit_try_blocks (NULL_TREE);
  6030.           expand_end_bindings (getdecls (), kept_level_p(), 1);
  6031.           yyval.ttype = poplevel (kept_level_p (), 1, 0);
  6032.           pop_momentary (); ;
  6033.     break;}
  6034. case 540:
  6035. #line 2840 "cp-parse.y"
  6036. { pop_implicit_try_blocks (NULL_TREE);
  6037.           expand_end_bindings (getdecls (), kept_level_p(), 1);
  6038.           yyval.ttype = poplevel (kept_level_p (), 1, 0);
  6039.           pop_momentary (); ;
  6040.     break;}
  6041. case 541:
  6042. #line 2845 "cp-parse.y"
  6043. { pop_implicit_try_blocks (NULL_TREE);
  6044.           expand_end_bindings (getdecls (), kept_level_p(), 1);
  6045.           yyval.ttype = poplevel (kept_level_p (), 0, 0);
  6046.           pop_momentary (); ;
  6047.     break;}
  6048. case 542:
  6049. #line 2853 "cp-parse.y"
  6050. { cond_stmt_keyword = "if"; ;
  6051.     break;}
  6052. case 543:
  6053. #line 2855 "cp-parse.y"
  6054. { emit_line_note (input_filename, lineno);
  6055.           expand_start_cond (truthvalue_conversion (yyvsp[0].ttype), 0); ;
  6056.     break;}
  6057. case 545:
  6058. #line 2862 "cp-parse.y"
  6059. { finish_stmt (); ;
  6060.     break;}
  6061. case 546:
  6062. #line 2864 "cp-parse.y"
  6063. { pop_implicit_try_blocks (NULL_TREE);
  6064.           expand_end_bindings (getdecls (), getdecls() != NULL_TREE, 1);
  6065.           yyval.ttype = poplevel (kept_level_p (), 1, 0);
  6066.           pop_momentary (); ;
  6067.     break;}
  6068. case 547:
  6069. #line 2872 "cp-parse.y"
  6070. { finish_stmt (); ;
  6071.     break;}
  6072. case 549:
  6073. #line 2878 "cp-parse.y"
  6074. { finish_stmt (); ;
  6075.     break;}
  6076. case 550:
  6077. #line 2880 "cp-parse.y"
  6078. {
  6079.             tree expr = yyvsp[-1].ttype;
  6080.           emit_line_note (input_filename, lineno);
  6081.           /* Do default conversion if safe and possibly important,
  6082.              in case within ({...}).  */
  6083.           if ((TREE_CODE (TREE_TYPE (expr)) == ARRAY_TYPE
  6084.                && lvalue_p (expr))
  6085.               || TREE_CODE (TREE_TYPE (expr)) == FUNCTION_TYPE)
  6086.             expr = default_conversion (expr);
  6087.           cplus_expand_expr_stmt (expr);
  6088.           clear_momentary ();
  6089.           finish_stmt (); ;
  6090.     break;}
  6091. case 551:
  6092. #line 2893 "cp-parse.y"
  6093. { expand_start_else (); ;
  6094.     break;}
  6095. case 552:
  6096. #line 2895 "cp-parse.y"
  6097. { expand_end_cond ();
  6098.           pop_implicit_try_blocks (NULL_TREE);
  6099.           expand_end_bindings (getdecls (), kept_level_p (), 1);
  6100.           poplevel (kept_level_p (), 1, 0);
  6101.           pop_momentary ();
  6102.           finish_stmt (); ;
  6103.     break;}
  6104. case 553:
  6105. #line 2902 "cp-parse.y"
  6106. { expand_end_cond ();
  6107.           pop_implicit_try_blocks (NULL_TREE);
  6108.           expand_end_bindings (getdecls (), kept_level_p (), 1);
  6109.           poplevel (kept_level_p (), 1, 0);
  6110.           pop_momentary ();
  6111.           finish_stmt (); ;
  6112.     break;}
  6113. case 554:
  6114. #line 2909 "cp-parse.y"
  6115. { emit_nop ();
  6116.           emit_line_note (input_filename, lineno);
  6117.           expand_start_loop (1);
  6118.           cond_stmt_keyword = "while"; ;
  6119.     break;}
  6120. case 555:
  6121. #line 2914 "cp-parse.y"
  6122. { expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[0].ttype)); ;
  6123.     break;}
  6124. case 556:
  6125. #line 2916 "cp-parse.y"
  6126. { pop_implicit_try_blocks (NULL_TREE);
  6127.           expand_end_bindings (getdecls (), kept_level_p (), 1);
  6128.           poplevel (kept_level_p (), 1, 0);
  6129.           pop_momentary ();
  6130.           expand_end_loop ();
  6131.           finish_stmt (); ;
  6132.     break;}
  6133. case 557:
  6134. #line 2923 "cp-parse.y"
  6135. { emit_nop ();
  6136.           emit_line_note (input_filename, lineno);
  6137.           expand_start_loop_continue_elsewhere (1); ;
  6138.     break;}
  6139. case 558:
  6140. #line 2927 "cp-parse.y"
  6141. { expand_loop_continue_here ();
  6142.           cond_stmt_keyword = "do"; ;
  6143.     break;}
  6144. case 559:
  6145. #line 2930 "cp-parse.y"
  6146. { emit_line_note (input_filename, lineno);
  6147.           expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-1].ttype));
  6148.           expand_end_loop ();
  6149.           clear_momentary ();
  6150.           finish_stmt (); ;
  6151.     break;}
  6152. case 560:
  6153. #line 2936 "cp-parse.y"
  6154. { emit_nop ();
  6155.           emit_line_note (input_filename, lineno);
  6156.           if (yyvsp[0].ttype) cplus_expand_expr_stmt (yyvsp[0].ttype);
  6157.           expand_start_loop_continue_elsewhere (1); ;
  6158.     break;}
  6159. case 561:
  6160. #line 2941 "cp-parse.y"
  6161. { emit_line_note (input_filename, lineno);
  6162.           if (yyvsp[-1].ttype) expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-1].ttype)); ;
  6163.     break;}
  6164. case 562:
  6165. #line 2946 "cp-parse.y"
  6166. { push_momentary (); ;
  6167.     break;}
  6168. case 563:
  6169. #line 2948 "cp-parse.y"
  6170. { emit_line_note (input_filename, lineno);
  6171.           expand_loop_continue_here ();
  6172.           if (yyvsp[-3].ttype) cplus_expand_expr_stmt (yyvsp[-3].ttype);
  6173.           pop_momentary ();
  6174.           pop_implicit_try_blocks (NULL_TREE);
  6175.           expand_end_bindings (getdecls (), kept_level_p (), 1);
  6176.           poplevel (kept_level_p (), 1, 0);
  6177.           pop_momentary ();
  6178.           expand_end_loop ();
  6179.           finish_stmt (); ;
  6180.     break;}
  6181. case 564:
  6182. #line 2959 "cp-parse.y"
  6183. { emit_nop ();
  6184.           emit_line_note (input_filename, lineno);
  6185.           expand_start_loop_continue_elsewhere (1); ;
  6186.     break;}
  6187. case 565:
  6188. #line 2963 "cp-parse.y"
  6189. { emit_line_note (input_filename, lineno);
  6190.           if (yyvsp[-1].ttype) expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-1].ttype)); ;
  6191.     break;}
  6192. case 566:
  6193. #line 2968 "cp-parse.y"
  6194. { push_momentary ();
  6195.           yyvsp[0].itype = lineno; ;
  6196.     break;}
  6197. case 567:
  6198. #line 2971 "cp-parse.y"
  6199. { emit_line_note (input_filename, (int) yyvsp[-2].itype);
  6200.           expand_loop_continue_here ();
  6201.           if (yyvsp[-3].ttype) cplus_expand_expr_stmt (yyvsp[-3].ttype);
  6202.           pop_momentary ();
  6203.           pop_implicit_try_blocks (NULL_TREE);
  6204.           expand_end_bindings (getdecls (), kept_level_p (), 1);
  6205.           poplevel (kept_level_p (), 1, 0);
  6206.           pop_momentary ();
  6207.           expand_end_loop ();
  6208.           finish_stmt ();
  6209.         ;
  6210.     break;}
  6211. case 568:
  6212. #line 2983 "cp-parse.y"
  6213. { emit_line_note (input_filename, lineno);
  6214.           c_expand_start_case (yyvsp[-1].ttype); 
  6215.           /* Don't let the tree nodes for $4 be discarded by
  6216.              clear_momentary during the parsing of the next stmt.  */
  6217.           push_momentary (); ;
  6218.     break;}
  6219. case 569:
  6220. #line 2989 "cp-parse.y"
  6221. { expand_end_case (yyvsp[-3].ttype);
  6222.           pop_momentary ();
  6223.           pop_implicit_try_blocks (NULL_TREE);
  6224.           expand_end_bindings (getdecls (), kept_level_p (), 1);
  6225.           poplevel (kept_level_p (), 1, 0);
  6226.           pop_momentary ();
  6227.           finish_stmt (); ;
  6228.     break;}
  6229. case 570:
  6230. #line 2997 "cp-parse.y"
  6231. { register tree value = yyvsp[-1].ttype;
  6232.           register tree label
  6233.             = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
  6234.  
  6235.           /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
  6236.              Strip such NOP_EXPRs.  */
  6237.           if (TREE_CODE (value) == NOP_EXPR
  6238.               && TREE_TYPE (value) == TREE_TYPE (TREE_OPERAND (value, 0)))
  6239.             value = TREE_OPERAND (value, 0);
  6240.  
  6241.           if (TREE_READONLY_DECL_P (value))
  6242.             {
  6243.               value = decl_constant_value (value);
  6244.               /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
  6245.              Strip such NOP_EXPRs.  */
  6246.               if (TREE_CODE (value) == NOP_EXPR
  6247.               && TREE_TYPE (value) == TREE_TYPE (TREE_OPERAND (value, 0)))
  6248.             value = TREE_OPERAND (value, 0);
  6249.             }
  6250.           value = fold (value);
  6251.  
  6252.           if (TREE_CODE (value) != INTEGER_CST
  6253.               && value != error_mark_node)
  6254.             {
  6255.               cp_error ("case label `%E' does not reduce to an integer constant", yyvsp[-1].ttype);
  6256.               value = error_mark_node;
  6257.             }
  6258.           else
  6259.             /* Promote char or short to int.  */
  6260.             value = default_conversion (value);
  6261.           if (value != error_mark_node)
  6262.             {
  6263.               tree duplicate;
  6264.               int success = pushcase (value, convert_and_check,
  6265.                           label, &duplicate);
  6266.               if (success == 1)
  6267.             cp_error ("case label `%E' not within a switch statement", yyvsp[-1].ttype);
  6268.               else if (success == 2)
  6269.             {
  6270.               cp_error ("duplicate case value `%E'", yyvsp[-1].ttype);
  6271.               cp_error_at ("`%E' previously used here", duplicate);
  6272.             }
  6273.               else if (success == 3)
  6274.             warning ("case value out of range");
  6275.               else if (success == 5)
  6276.             cp_error ("case label `%E' within scope of cleanup or variable array", yyvsp[-1].ttype);
  6277.             }
  6278.           define_case_label (label);
  6279.         ;
  6280.     break;}
  6281. case 572:
  6282. #line 3048 "cp-parse.y"
  6283. { register tree value1 = yyvsp[-3].ttype;
  6284.           register tree value2 = yyvsp[-1].ttype;
  6285.           register tree label
  6286.             = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
  6287.  
  6288.           if (pedantic)
  6289.             pedwarn ("ANSI C++ forbids range expressions in switch statement");
  6290.  
  6291.           /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
  6292.              Strip such NOP_EXPRs.  */
  6293.           if (TREE_CODE (value1) == NOP_EXPR
  6294.               && TREE_TYPE (value1) == TREE_TYPE (TREE_OPERAND (value1, 0)))
  6295.             value1 = TREE_OPERAND (value1, 0);
  6296.  
  6297.           if (TREE_READONLY_DECL_P (value1))
  6298.             {
  6299.               value1 = decl_constant_value (value1);
  6300.               /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
  6301.              Strip such NOP_EXPRs.  */
  6302.               if (TREE_CODE (value1) == NOP_EXPR
  6303.               && TREE_TYPE (value1) == TREE_TYPE (TREE_OPERAND (value1, 0)))
  6304.             value1 = TREE_OPERAND (value1, 0);
  6305.             }
  6306.           value1 = fold (value1);
  6307.  
  6308.           /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
  6309.              Strip such NOP_EXPRs.  */
  6310.           if (TREE_CODE (value2) == NOP_EXPR
  6311.               && TREE_TYPE (value2) == TREE_TYPE (TREE_OPERAND (value2, 0)))
  6312.             value2 = TREE_OPERAND (value2, 0);
  6313.  
  6314.           if (TREE_READONLY_DECL_P (value2))
  6315.             {
  6316.               value2 = decl_constant_value (value2);
  6317.               /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
  6318.              Strip such NOP_EXPRs.  */
  6319.               if (TREE_CODE (value2) == NOP_EXPR
  6320.               && TREE_TYPE (value2) == TREE_TYPE (TREE_OPERAND (value2, 0)))
  6321.             value2 = TREE_OPERAND (value2, 0);
  6322.             }
  6323.           value2 = fold (value2);
  6324.  
  6325.  
  6326.           if (TREE_CODE (value1) != INTEGER_CST
  6327.               && value1 != error_mark_node)
  6328.             {
  6329.               error ("case label does not reduce to an integer constant");
  6330.               value1 = error_mark_node;
  6331.             }
  6332.           if (TREE_CODE (value2) != INTEGER_CST
  6333.               && value2 != error_mark_node)
  6334.             {
  6335.               error ("case label does not reduce to an integer constant");
  6336.               value2 = error_mark_node;
  6337.             }
  6338.           if (value1 != error_mark_node
  6339.               && value2 != error_mark_node)
  6340.             {
  6341.               tree duplicate;
  6342.               int success = pushcase_range (value1, value2,
  6343.                             convert_and_check, label,
  6344.                             &duplicate);
  6345.               if (success == 1)
  6346.             error ("case label not within a switch statement");
  6347.               else if (success == 2)
  6348.             {
  6349.               error ("duplicate (or overlapping) case value");
  6350.               error_with_decl (duplicate, "this is the first entry overlapping that value");
  6351.             }
  6352.               else if (success == 3)
  6353.             warning ("case value out of range");
  6354.               else if (success == 4)
  6355.             warning ("empty range specified");
  6356.               else if (success == 5)
  6357.             error ("case label within scope of cleanup or variable array");
  6358.             }
  6359.           define_case_label (label);
  6360.         ;
  6361.     break;}
  6362. case 574:
  6363. #line 3128 "cp-parse.y"
  6364. {
  6365.           tree duplicate;
  6366.           register tree label
  6367.             = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
  6368.           int success = pushcase (NULL_TREE, 0, label, &duplicate);
  6369.           if (success == 1)
  6370.             error ("default label not within a switch statement");
  6371.           else if (success == 2)
  6372.             {
  6373.               error ("multiple default labels in one switch");
  6374.               error_with_decl (duplicate, "this is the first default label");
  6375.             }
  6376.           define_case_label (NULL_TREE);
  6377.         ;
  6378.     break;}
  6379. case 576:
  6380. #line 3144 "cp-parse.y"
  6381. { emit_line_note (input_filename, lineno);
  6382.           if ( ! expand_exit_something ())
  6383.             error ("break statement not within loop or switch"); ;
  6384.     break;}
  6385. case 577:
  6386. #line 3148 "cp-parse.y"
  6387. { emit_line_note (input_filename, lineno);
  6388.           if (! expand_continue_loop (0))
  6389.             error ("continue statement not within a loop"); ;
  6390.     break;}
  6391. case 578:
  6392. #line 3152 "cp-parse.y"
  6393. { emit_line_note (input_filename, lineno);
  6394.           c_expand_return (NULL_TREE); ;
  6395.     break;}
  6396. case 579:
  6397. #line 3155 "cp-parse.y"
  6398. { emit_line_note (input_filename, lineno);
  6399.           c_expand_return (yyvsp[-1].ttype);
  6400.           finish_stmt ();
  6401.         ;
  6402.     break;}
  6403. case 580:
  6404. #line 3160 "cp-parse.y"
  6405. { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
  6406.           emit_line_note (input_filename, lineno);
  6407.           expand_asm (yyvsp[-2].ttype);
  6408.           finish_stmt ();
  6409.         ;
  6410.     break;}
  6411. case 581:
  6412. #line 3167 "cp-parse.y"
  6413. { if (TREE_CHAIN (yyvsp[-4].ttype)) yyvsp[-4].ttype = combine_strings (yyvsp[-4].ttype);
  6414.           emit_line_note (input_filename, lineno);
  6415.           c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
  6416.                      yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
  6417.                      input_filename, lineno);
  6418.           finish_stmt ();
  6419.         ;
  6420.     break;}
  6421. case 582:
  6422. #line 3176 "cp-parse.y"
  6423. { if (TREE_CHAIN (yyvsp[-6].ttype)) yyvsp[-6].ttype = combine_strings (yyvsp[-6].ttype);
  6424.           emit_line_note (input_filename, lineno);
  6425.           c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
  6426.                      yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
  6427.                      input_filename, lineno);
  6428.           finish_stmt ();
  6429.         ;
  6430.     break;}
  6431. case 583:
  6432. #line 3186 "cp-parse.y"
  6433. { if (TREE_CHAIN (yyvsp[-8].ttype)) yyvsp[-8].ttype = combine_strings (yyvsp[-8].ttype);
  6434.           emit_line_note (input_filename, lineno);
  6435.           c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
  6436.                      yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
  6437.                      input_filename, lineno);
  6438.           finish_stmt ();
  6439.         ;
  6440.     break;}
  6441. case 584:
  6442. #line 3194 "cp-parse.y"
  6443. { emit_line_note (input_filename, lineno);
  6444.           expand_computed_goto (yyvsp[-1].ttype); ;
  6445.     break;}
  6446. case 585:
  6447. #line 3197 "cp-parse.y"
  6448. { tree decl;
  6449.           emit_line_note (input_filename, lineno);
  6450.           decl = lookup_label (yyvsp[-1].ttype);
  6451.           TREE_USED (decl) = 1;
  6452.           expand_goto (decl); ;
  6453.     break;}
  6454. case 586:
  6455. #line 3203 "cp-parse.y"
  6456. { finish_stmt (); ;
  6457.     break;}
  6458. case 587:
  6459. #line 3205 "cp-parse.y"
  6460. { error ("label must be followed by statement");
  6461.           yyungetc ('}', 0);
  6462.           finish_stmt (); ;
  6463.     break;}
  6464. case 588:
  6465. #line 3209 "cp-parse.y"
  6466. { finish_stmt (); ;
  6467.     break;}
  6468. case 589:
  6469. #line 3212 "cp-parse.y"
  6470. { cplus_expand_throw (NULL_TREE); ;
  6471.     break;}
  6472. case 590:
  6473. #line 3213 "cp-parse.y"
  6474. { cplus_expand_throw (yyvsp[-1].ttype); ;
  6475.     break;}
  6476. case 591:
  6477. #line 3215 "cp-parse.y"
  6478. { cplus_expand_raise (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, 0);
  6479.           finish_stmt (); ;
  6480.     break;}
  6481. case 592:
  6482. #line 3218 "cp-parse.y"
  6483. { cplus_expand_raise (yyvsp[-2].ttype, NULL_TREE, NULL_TREE, 0);
  6484.           finish_stmt (); ;
  6485.     break;}
  6486. case 593:
  6487. #line 3221 "cp-parse.y"
  6488. { cplus_expand_raise (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, 0);
  6489.           finish_stmt (); ;
  6490.     break;}
  6491. case 594:
  6492. #line 3224 "cp-parse.y"
  6493. { cplus_expand_raise (yyvsp[-2].ttype, NULL_TREE, NULL_TREE, 0);
  6494.           finish_stmt (); ;
  6495.     break;}
  6496. case 595:
  6497. #line 3227 "cp-parse.y"
  6498. { cplus_expand_reraise (yyvsp[-1].ttype);
  6499.           finish_stmt (); ;
  6500.     break;}
  6501. case 596:
  6502. #line 3230 "cp-parse.y"
  6503. {
  6504.           tree decl = cplus_expand_end_try (yyvsp[-3].itype);
  6505.           yyvsp[-2].ttype = current_exception_type;
  6506.           yyvsp[0].ttype = current_exception_decl;
  6507.           yyval.ttype = current_exception_object;
  6508.           cplus_expand_start_except (yyvsp[-1].ttype, decl);
  6509.           pushlevel (0);
  6510.           clear_last_expr ();
  6511.           push_momentary ();
  6512.           expand_start_bindings (0);
  6513.         ;
  6514.     break;}
  6515. case 597:
  6516. #line 3242 "cp-parse.y"
  6517. {
  6518.           tree decls = getdecls ();
  6519.           /* If there is a default exception to handle,
  6520.              handle it here.  */
  6521.           if (yyvsp[-1].ttype)
  6522.             {
  6523.               tree decl = build_decl (CPLUS_CATCH_DECL, NULL_TREE, 0);
  6524.               tree block;
  6525.  
  6526.               pushlevel (1);
  6527.               expand_start_bindings (0);
  6528.               expand_expr (yyvsp[-1].ttype, 0, 0, 0);
  6529.               expand_end_bindings (0, 1, 0);
  6530.               block = poplevel (1, 0, 0);
  6531.  
  6532.               /* This is a catch block.  */
  6533.               TREE_LANG_FLAG_2 (block) = 1;
  6534.               BLOCK_VARS (block) = decl;
  6535.             }
  6536.  
  6537.           expand_end_bindings (decls, decls != 0, 1);
  6538.           poplevel (decls != 0, 1, 0);
  6539.           pop_momentary ();
  6540.           current_exception_type = yyvsp[-5].ttype;
  6541.           current_exception_decl = yyvsp[-3].ttype;
  6542.           current_exception_object = yyvsp[-2].ttype;
  6543.           cplus_expand_end_except (yyvsp[-1].ttype);
  6544.         ;
  6545.     break;}
  6546. case 598:
  6547. #line 3271 "cp-parse.y"
  6548. {
  6549.           cplus_expand_end_try (yyvsp[-1].itype);
  6550.           /* These are the important actions of
  6551.              `cplus_expand_end_except' which we must emulate.  */
  6552.           if (expand_escape_except ())
  6553.             expand_end_except ();
  6554.           expand_end_bindings (0, 0, 1);
  6555.           poplevel (0, 0, 0);
  6556.         ;
  6557.     break;}
  6558. case 599:
  6559. #line 3281 "cp-parse.y"
  6560. {
  6561.           tree decl = cplus_expand_end_try (yyvsp[-2].itype);
  6562.           yyvsp[-1].ttype = current_exception_type;
  6563.           yyvsp[0].ttype = current_exception_decl;
  6564.           yyval.ttype = current_exception_object;
  6565.           cplus_expand_start_except (NULL, decl);
  6566.           pushlevel (0);
  6567.           clear_last_expr ();
  6568.           push_momentary ();
  6569.           expand_start_bindings (0);
  6570.         ;
  6571.     break;}
  6572. case 600:
  6573. #line 3293 "cp-parse.y"
  6574. {
  6575.           tree decls = getdecls ();
  6576.           /* If there is a default exception to handle,
  6577.              handle it here.  */
  6578.           if (yyvsp[0].ttype)
  6579.             {
  6580.               tree decl = build_decl (CPLUS_CATCH_DECL, NULL_TREE, 0);
  6581.               tree block;
  6582.  
  6583.               pushlevel (1);
  6584.               expand_start_bindings (0);
  6585.               expand_expr (yyvsp[0].ttype, 0, 0, 0);
  6586.               expand_end_bindings (0, 1, 0);
  6587.               block = poplevel (1, 0, 0);
  6588.  
  6589.               /* This is a catch block.  */
  6590.               TREE_LANG_FLAG_2 (block) = 1;
  6591.               BLOCK_VARS (block) = decl;
  6592.             }
  6593.  
  6594.           expand_end_bindings (decls, decls != 0, 1);
  6595.           poplevel (decls != 0, 1, 0);
  6596.           pop_momentary ();
  6597.           current_exception_type = yyvsp[-3].ttype;
  6598.           current_exception_decl = yyvsp[-2].ttype;
  6599.           current_exception_object = yyvsp[-1].ttype;
  6600.           cplus_expand_end_except (yyvsp[0].ttype);
  6601.         ;
  6602.     break;}
  6603. case 601:
  6604. #line 3322 "cp-parse.y"
  6605. { tree name = get_identifier ("(compiler error)");
  6606.           tree orig_ex_type = current_exception_type;
  6607.           tree orig_ex_decl = current_exception_decl;
  6608.           tree orig_ex_obj = current_exception_object;
  6609.           tree decl = cplus_expand_end_try (yyvsp[-2].itype), decls;
  6610.  
  6611.           /* Start hidden EXCEPT.  */
  6612.           cplus_expand_start_except (name, decl);
  6613.           pushlevel (0);
  6614.           clear_last_expr ();
  6615.           push_momentary ();
  6616.           expand_start_bindings (0);
  6617.  
  6618.           /* This sets up the reraise.  */
  6619.           cplus_expand_reraise (yyvsp[0].ttype);
  6620.  
  6621.           decls = getdecls ();
  6622.           expand_end_bindings (decls, decls != 0, 1);
  6623.           poplevel (decls != 0, 1, 0);
  6624.           pop_momentary ();
  6625.           current_exception_type = orig_ex_type;
  6626.           current_exception_decl = orig_ex_decl;
  6627.           current_exception_object = orig_ex_obj;
  6628.           /* This will reraise for us.  */
  6629.           cplus_expand_end_except (error_mark_node);
  6630.           if (yychar == YYEMPTY)
  6631.             yychar = YYLEX;
  6632.           if (yychar != ';')
  6633.             error ("missing ';' after reraise statement");
  6634.         ;
  6635.     break;}
  6636. case 602:
  6637. #line 3353 "cp-parse.y"
  6638. { yyerror ("`except' missing after `try' statement");
  6639.           /* Terminate the binding contour started by special
  6640.              code in `.pushlevel'.  Automagically pops off
  6641.              the conditional we started for `try' stmt.  */
  6642.           cplus_expand_end_try (yyvsp[0].itype);
  6643.           expand_end_bindings (0, 0, 1);
  6644.           poplevel (0, 0, 0);
  6645.           pop_momentary ();
  6646.           YYERROR; ;
  6647.     break;}
  6648. case 603:
  6649. #line 3368 "cp-parse.y"
  6650. {
  6651.           yyval.itype = 1;
  6652.           pop_implicit_try_blocks (NULL_TREE);
  6653.         ;
  6654.     break;}
  6655. case 604:
  6656. #line 3373 "cp-parse.y"
  6657. {
  6658.           yyval.itype = 1;
  6659.           pop_implicit_try_blocks (NULL_TREE);
  6660.         ;
  6661.     break;}
  6662. case 605:
  6663. #line 3378 "cp-parse.y"
  6664. {
  6665.           yyval.itype = 0;
  6666.           pop_implicit_try_blocks (NULL_TREE);
  6667.         ;
  6668.     break;}
  6669. case 606:
  6670. #line 3386 "cp-parse.y"
  6671. { tree label;
  6672.         do_label:
  6673.           label = define_label (input_filename, lineno, yyvsp[-1].ttype);
  6674.           if (label)
  6675.             expand_label (label);
  6676.         ;
  6677.     break;}
  6678. case 607:
  6679. #line 3393 "cp-parse.y"
  6680. { goto do_label; ;
  6681.     break;}
  6682. case 608:
  6683. #line 3395 "cp-parse.y"
  6684. { tree label = define_label (input_filename, lineno, yyvsp[0].ttype);
  6685.           if (label)
  6686.             expand_label (label);
  6687.         ;
  6688.     break;}
  6689. case 609:
  6690. #line 3401 "cp-parse.y"
  6691. { cplus_expand_start_try (0); ;
  6692.     break;}
  6693. case 611:
  6694. #line 3407 "cp-parse.y"
  6695. {
  6696.           yyval.itype = 1;
  6697.           pop_implicit_try_blocks (NULL_TREE);
  6698.         ;
  6699.     break;}
  6700. case 612:
  6701. #line 3412 "cp-parse.y"
  6702. {
  6703.           yyval.itype = 1;
  6704.           pop_implicit_try_blocks (NULL_TREE);
  6705.         ;
  6706.     break;}
  6707. case 613:
  6708. #line 3417 "cp-parse.y"
  6709. {
  6710.           yyval.itype = 0;
  6711.           pop_implicit_try_blocks (NULL_TREE);
  6712.         ;
  6713.     break;}
  6714. case 615:
  6715. #line 3424 "cp-parse.y"
  6716. { cplus_expand_start_try (0); ;
  6717.     break;}
  6718. case 617:
  6719. #line 3428 "cp-parse.y"
  6720. { yyval.ttype = NULL_TREE; ;
  6721.     break;}
  6722. case 618:
  6723. #line 3430 "cp-parse.y"
  6724. {
  6725.           tree type = lookup_exception_type (current_class_type, current_class_name, yyvsp[0].ttype);
  6726.           if (type == NULL_TREE)
  6727.             {
  6728.               error ("`%s' is not an exception type",
  6729.                  IDENTIFIER_POINTER (TREE_VALUE (yyvsp[0].ttype)));
  6730.               current_exception_type = NULL_TREE;
  6731.               TREE_TYPE (current_exception_object) = error_mark_node;
  6732.             }
  6733.           else
  6734.             {
  6735.               current_exception_type = type;
  6736.               /* In-place union.  */
  6737.               TREE_TYPE (current_exception_object) = type;
  6738.             }
  6739.           yyvsp[0].ttype = cplus_expand_start_catch (yyvsp[0].ttype);
  6740.           pushlevel (1);
  6741.           expand_start_bindings (0);
  6742.         ;
  6743.     break;}
  6744. case 619:
  6745. #line 3450 "cp-parse.y"
  6746. {
  6747.           expand_end_bindings (0, 1, 0);
  6748.           yyvsp[0].ttype = poplevel (1, 0, 0);
  6749.  
  6750.           cplus_expand_end_catch (0);
  6751.  
  6752.           /* Mark this as a catch block.  */
  6753.           TREE_LANG_FLAG_2 (yyvsp[0].ttype) = 1;
  6754.           if (yyvsp[-2].ttype != error_mark_node)
  6755.             {
  6756.               tree decl = build_decl (CPLUS_CATCH_DECL, DECL_NAME (yyvsp[-2].ttype), 0);
  6757.               DECL_RTL (decl) = DECL_RTL (yyvsp[-2].ttype);
  6758.               TREE_CHAIN (decl) = BLOCK_VARS (yyvsp[0].ttype);
  6759.               BLOCK_VARS (yyvsp[0].ttype) = decl;
  6760.             }
  6761.         ;
  6762.     break;}
  6763. case 620:
  6764. #line 3467 "cp-parse.y"
  6765. {
  6766.           if (yyvsp[-1].ttype)
  6767.             error ("duplicate default in exception handler");
  6768.           current_exception_type = NULL_TREE;
  6769.           /* Takes it right out of scope.  */
  6770.           TREE_TYPE (current_exception_object) = error_mark_node;
  6771.  
  6772.           if (! expand_catch_default ())
  6773.             compiler_error ("default catch botch");
  6774.  
  6775.           /* The default exception is handled as the
  6776.              last in the chain of exceptions handled.  */
  6777.           do_pending_stack_adjust ();
  6778.           yyvsp[-1].ttype = make_node (RTL_EXPR);
  6779.           TREE_TYPE (yyvsp[-1].ttype) = void_type_node;
  6780.           start_sequence_for_rtl_expr (yyvsp[-1].ttype);
  6781.         ;
  6782.     break;}
  6783. case 621:
  6784. #line 3485 "cp-parse.y"
  6785. {
  6786.           extern struct rtx_def *get_insns ();
  6787.           do_pending_stack_adjust ();
  6788.           if (! expand_catch (NULL_TREE))
  6789.             compiler_error ("except nesting botch");
  6790.           if (! expand_end_catch ())
  6791.             compiler_error ("except nesting botch");
  6792.           RTL_EXPR_SEQUENCE (yyvsp[-3].ttype) = get_insns ();
  6793.           if (yyvsp[0].ttype)
  6794.             {
  6795.               /* Mark this block as the default catch block.  */
  6796.               TREE_LANG_FLAG_1 (yyvsp[0].ttype) = 1;
  6797.               TREE_LANG_FLAG_2 (yyvsp[0].ttype) = 1;
  6798.             }
  6799.           end_sequence ();
  6800.         ;
  6801.     break;}
  6802. case 622:
  6803. #line 3505 "cp-parse.y"
  6804. { yyval.ttype = NULL_TREE; ;
  6805.     break;}
  6806. case 624:
  6807. #line 3510 "cp-parse.y"
  6808. { yyval.ttype = NULL_TREE; ;
  6809.     break;}
  6810. case 625:
  6811. #line 3512 "cp-parse.y"
  6812. {
  6813.           tree type = groktypename (yyvsp[-2].ttype);
  6814.           current_exception_type = type;
  6815.           /* In-place union.  */
  6816.           if (yyvsp[-1].ttype)
  6817.             {
  6818.               tree tmp;
  6819.               tmp = pushdecl (build_decl (VAR_DECL, yyvsp[-1].ttype, type));
  6820.               current_exception_object =
  6821.                   build1 (INDIRECT_REF, type, tmp);
  6822.              }
  6823.           yyvsp[-2].ttype = ansi_expand_start_catch(type);
  6824.           pushlevel (1);
  6825.           expand_start_bindings (0);
  6826.         ;
  6827.     break;}
  6828. case 626:
  6829. #line 3528 "cp-parse.y"
  6830. {
  6831.           expand_end_bindings (0, 1, 0);
  6832.           yyvsp[0].ttype = poplevel (1, 0, 0);
  6833.  
  6834.           cplus_expand_end_catch (0);
  6835.  
  6836.           /* Mark this as a catch block.  */
  6837.           TREE_LANG_FLAG_2 (yyvsp[0].ttype) = 1;
  6838.           if (yyvsp[-4].ttype != error_mark_node)
  6839.             {
  6840.               tree decl = build_decl (CPLUS_CATCH_DECL, DECL_NAME (yyvsp[-4].ttype), 0);
  6841.               DECL_RTL (decl) = DECL_RTL (yyvsp[-4].ttype);
  6842.               TREE_CHAIN (decl) = BLOCK_VARS (yyvsp[0].ttype);
  6843.               BLOCK_VARS (yyvsp[0].ttype) = decl;
  6844.             }
  6845.         ;
  6846.     break;}
  6847. case 627:
  6848. #line 3548 "cp-parse.y"
  6849. { yyval.ttype = NULL_TREE; ;
  6850.     break;}
  6851. case 628:
  6852. #line 3550 "cp-parse.y"
  6853. { yyval.ttype = yyvsp[-1].ttype; ;
  6854.     break;}
  6855. case 629:
  6856. #line 3552 "cp-parse.y"
  6857. { yyval.ttype = NULL_TREE; ;
  6858.     break;}
  6859. case 630:
  6860. #line 3557 "cp-parse.y"
  6861. { yyval.itype = 0; ;
  6862.     break;}
  6863. case 631:
  6864. #line 3559 "cp-parse.y"
  6865. { yyval.itype = 0; ;
  6866.     break;}
  6867. case 632:
  6868. #line 3561 "cp-parse.y"
  6869. { yyval.itype = 1; ;
  6870.     break;}
  6871. case 633:
  6872. #line 3563 "cp-parse.y"
  6873. { yyval.itype = -1; ;
  6874.     break;}
  6875. case 634:
  6876. #line 3570 "cp-parse.y"
  6877. { emit_line_note (input_filename, lineno); ;
  6878.     break;}
  6879. case 635:
  6880. #line 3572 "cp-parse.y"
  6881. { emit_line_note (input_filename, lineno); ;
  6882.     break;}
  6883. case 636:
  6884. #line 3577 "cp-parse.y"
  6885. { yyval.ttype = NULL_TREE; ;
  6886.     break;}
  6887. case 638:
  6888. #line 3580 "cp-parse.y"
  6889. { yyval.ttype = NULL_TREE; ;
  6890.     break;}
  6891. case 639:
  6892. #line 3586 "cp-parse.y"
  6893. { yyval.ttype = NULL_TREE; ;
  6894.     break;}
  6895. case 642:
  6896. #line 3593 "cp-parse.y"
  6897. { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
  6898.     break;}
  6899. case 643:
  6900. #line 3598 "cp-parse.y"
  6901. { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ;
  6902.     break;}
  6903. case 644:
  6904. #line 3603 "cp-parse.y"
  6905. { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
  6906.     break;}
  6907. case 645:
  6908. #line 3605 "cp-parse.y"
  6909. { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
  6910.     break;}
  6911. case 646:
  6912. #line 3614 "cp-parse.y"
  6913. {
  6914.           if (strict_prototype)
  6915.             yyval.ttype = void_list_node;
  6916.           else
  6917.             yyval.ttype = NULL_TREE;
  6918.         ;
  6919.     break;}
  6920. case 647:
  6921. #line 3621 "cp-parse.y"
  6922. {
  6923.           yyval.ttype = chainon (yyval.ttype, void_list_node);
  6924.           TREE_PARMLIST (yyval.ttype) = 1;
  6925.         ;
  6926.     break;}
  6927. case 648:
  6928. #line 3626 "cp-parse.y"
  6929. {
  6930.           TREE_PARMLIST (yyval.ttype) = 1;
  6931.         ;
  6932.     break;}
  6933. case 649:
  6934. #line 3631 "cp-parse.y"
  6935. {
  6936.           TREE_PARMLIST (yyval.ttype) = 1;
  6937.         ;
  6938.     break;}
  6939. case 650:
  6940. #line 3635 "cp-parse.y"
  6941. {
  6942.           /* ARM $8.2.5 has this as a boxed-off comment.  */
  6943.           if (pedantic)
  6944.             warning ("use of `...' without a first argument is non-portable");
  6945.           yyval.ttype = NULL_TREE;
  6946.         ;
  6947.     break;}
  6948. case 651:
  6949. #line 3642 "cp-parse.y"
  6950. {
  6951.           TREE_PARMLIST (yyval.ttype) = 1;
  6952.         ;
  6953.     break;}
  6954. case 652:
  6955. #line 3646 "cp-parse.y"
  6956. {
  6957.           TREE_PARMLIST (yyval.ttype) = 1;
  6958.         ;
  6959.     break;}
  6960. case 653:
  6961. #line 3650 "cp-parse.y"
  6962. {
  6963.           /* This helps us recover from really nasty
  6964.              parse errors, for example, a missing right
  6965.              parenthesis.  */
  6966.           yyerror ("possibly missing ')'");
  6967.           yyval.ttype = chainon (yyval.ttype, void_list_node);
  6968.           TREE_PARMLIST (yyval.ttype) = 1;
  6969.           yyungetc (':', 0);
  6970.           yychar = ')';
  6971.         ;
  6972.     break;}
  6973. case 654:
  6974. #line 3665 "cp-parse.y"
  6975. { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
  6976.     break;}
  6977. case 655:
  6978. #line 3667 "cp-parse.y"
  6979. { yyval.ttype = build_tree_list (yyvsp[0].ttype, yyval.ttype); ;
  6980.     break;}
  6981. case 656:
  6982. #line 3669 "cp-parse.y"
  6983. { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
  6984.     break;}
  6985. case 657:
  6986. #line 3671 "cp-parse.y"
  6987. { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
  6988.     break;}
  6989. case 658:
  6990. #line 3673 "cp-parse.y"
  6991. { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
  6992.     break;}
  6993. case 659:
  6994. #line 3675 "cp-parse.y"
  6995. { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
  6996.     break;}
  6997. case 660:
  6998. #line 3696 "cp-parse.y"
  6999. { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype);
  7000.           see_typename (); ;
  7001.     break;}
  7002. case 661:
  7003. #line 3699 "cp-parse.y"
  7004. { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype);
  7005.           see_typename (); ;
  7006.     break;}
  7007. case 664:
  7008. #line 3706 "cp-parse.y"
  7009. { yyval.ttype = yyvsp[0].ttype; ;
  7010.     break;}
  7011. case 665:
  7012. #line 3710 "cp-parse.y"
  7013. { see_typename (); ;
  7014.     break;}
  7015. case 666:
  7016. #line 3714 "cp-parse.y"
  7017. { dont_see_typename (); ;
  7018.     break;}
  7019. case 667:
  7020. #line 3733 "cp-parse.y"
  7021. {
  7022.           warning ("type specifier omitted for parameter");
  7023.           yyval.ttype = build_tree_list (TREE_PURPOSE (TREE_VALUE (yyvsp[-2].ttype)), yyval.ttype);
  7024.         ;
  7025.     break;}
  7026. case 668:
  7027. #line 3741 "cp-parse.y"
  7028. { yyval.ttype = NULL_TREE; ;
  7029.     break;}
  7030. case 669:
  7031. #line 3743 "cp-parse.y"
  7032. { yyval.ttype = yyvsp[0].ttype; ;
  7033.     break;}
  7034. case 670:
  7035. #line 3745 "cp-parse.y"
  7036. { yyval.ttype = yyvsp[-1].ttype; ;
  7037.     break;}
  7038. case 671:
  7039. #line 3750 "cp-parse.y"
  7040. { yyval.ttype = void_list_node; ;
  7041.     break;}
  7042. case 672:
  7043. #line 3752 "cp-parse.y"
  7044. { yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
  7045.     break;}
  7046. case 673:
  7047. #line 3754 "cp-parse.y"
  7048. { yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
  7049.     break;}
  7050. case 674:
  7051. #line 3756 "cp-parse.y"
  7052. { yyval.ttype = build_decl_list (void_type_node, yyvsp[0].ttype); ;
  7053.     break;}
  7054. case 675:
  7055. #line 3758 "cp-parse.y"
  7056. { yyval.ttype = build_decl_list (void_type_node, yyvsp[0].ttype); ;
  7057.     break;}
  7058. case 676:
  7059. #line 3760 "cp-parse.y"
  7060. { yyval.ttype = build_decl_list (yyval.ttype, yyvsp[0].ttype); ;
  7061.     break;}
  7062. case 678:
  7063. #line 3766 "cp-parse.y"
  7064. { yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
  7065.     break;}
  7066. case 680:
  7067. #line 3772 "cp-parse.y"
  7068. {
  7069.             TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
  7070.           yyval.ttype = yyvsp[0].ttype;
  7071.         ;
  7072.     break;}
  7073. case 682:
  7074. #line 3781 "cp-parse.y"
  7075. {
  7076.             TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
  7077.           yyval.ttype = yyvsp[0].ttype;
  7078.         ;
  7079.     break;}
  7080. case 683:
  7081. #line 3789 "cp-parse.y"
  7082. { yyval.ttype = ansi_opname[MULT_EXPR]; ;
  7083.     break;}
  7084. case 684:
  7085. #line 3791 "cp-parse.y"
  7086. { yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ;
  7087.     break;}
  7088. case 685:
  7089. #line 3793 "cp-parse.y"
  7090. { yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ;
  7091.     break;}
  7092. case 686:
  7093. #line 3795 "cp-parse.y"
  7094. { yyval.ttype = ansi_opname[PLUS_EXPR]; ;
  7095.     break;}
  7096. case 687:
  7097. #line 3797 "cp-parse.y"
  7098. { yyval.ttype = ansi_opname[MINUS_EXPR]; ;
  7099.     break;}
  7100. case 688:
  7101. #line 3799 "cp-parse.y"
  7102. { yyval.ttype = ansi_opname[BIT_AND_EXPR]; ;
  7103.     break;}
  7104. case 689:
  7105. #line 3801 "cp-parse.y"
  7106. { yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ;
  7107.     break;}
  7108. case 690:
  7109. #line 3803 "cp-parse.y"
  7110. { yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ;
  7111.     break;}
  7112. case 691:
  7113. #line 3805 "cp-parse.y"
  7114. { yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ;
  7115.     break;}
  7116. case 692:
  7117. #line 3807 "cp-parse.y"
  7118. { yyval.ttype = ansi_opname[COMPOUND_EXPR]; ;
  7119.     break;}
  7120. case 693:
  7121. #line 3809 "cp-parse.y"
  7122. { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
  7123.     break;}
  7124. case 694:
  7125. #line 3811 "cp-parse.y"
  7126. { yyval.ttype = ansi_opname[LT_EXPR]; ;
  7127.     break;}
  7128. case 695:
  7129. #line 3813 "cp-parse.y"
  7130. { yyval.ttype = ansi_opname[GT_EXPR]; ;
  7131.     break;}
  7132. case 696:
  7133. #line 3815 "cp-parse.y"
  7134. { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
  7135.     break;}
  7136. case 697:
  7137. #line 3817 "cp-parse.y"
  7138. { yyval.ttype = ansi_assopname[yyvsp[0].code]; ;
  7139.     break;}
  7140. case 698:
  7141. #line 3819 "cp-parse.y"
  7142. {
  7143.           yyval.ttype = ansi_opname [MODIFY_EXPR];
  7144.           if (current_class_type)
  7145.             {
  7146.               TYPE_HAS_ASSIGNMENT (current_class_type) = 1;
  7147.               TYPE_GETS_ASSIGNMENT (current_class_type) = 1;
  7148.             }
  7149.         ;
  7150.     break;}
  7151. case 699:
  7152. #line 3828 "cp-parse.y"
  7153. { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
  7154.     break;}
  7155. case 700:
  7156. #line 3830 "cp-parse.y"
  7157. { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
  7158.     break;}
  7159. case 701:
  7160. #line 3832 "cp-parse.y"
  7161. { yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ;
  7162.     break;}
  7163. case 702:
  7164. #line 3834 "cp-parse.y"
  7165. { yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ;
  7166.     break;}
  7167. case 703:
  7168. #line 3836 "cp-parse.y"
  7169. { yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ;
  7170.     break;}
  7171. case 704:
  7172. #line 3838 "cp-parse.y"
  7173. { yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ;
  7174.     break;}
  7175. case 705:
  7176. #line 3840 "cp-parse.y"
  7177. { yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ;
  7178.     break;}
  7179. case 706:
  7180. #line 3842 "cp-parse.y"
  7181. { yyval.ttype = ansi_opname[COND_EXPR]; ;
  7182.     break;}
  7183. case 707:
  7184. #line 3844 "cp-parse.y"
  7185. { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
  7186.     break;}
  7187. case 708:
  7188. #line 3846 "cp-parse.y"
  7189. { yyval.ttype = ansi_opname[COMPONENT_REF];
  7190.           if (current_class_type)
  7191.             {
  7192.               tree t = current_class_type;
  7193.               while (t)
  7194.             {
  7195.               TYPE_OVERLOADS_ARROW (t) = 1;
  7196.               t = TYPE_NEXT_VARIANT (t);
  7197.             }
  7198.             }
  7199.         ;
  7200.     break;}
  7201. case 709:
  7202. #line 3858 "cp-parse.y"
  7203. { yyval.ttype = ansi_opname[MEMBER_REF];
  7204.           if (current_class_type)
  7205.             {
  7206.               tree t = current_class_type;
  7207.               while (t)
  7208.             {
  7209.               TYPE_OVERLOADS_ARROW (t) = 1;
  7210.               t = TYPE_NEXT_VARIANT (t);
  7211.             }
  7212.             }
  7213.         ;
  7214.     break;}
  7215. case 710:
  7216. #line 3870 "cp-parse.y"
  7217. { yyval.ttype = ansi_opname[CALL_EXPR];
  7218.           if (current_class_type)
  7219.             {
  7220.               tree t = current_class_type;
  7221.               while (t)
  7222.             {
  7223.               TYPE_OVERLOADS_CALL_EXPR (t) = 1;
  7224.               t = TYPE_NEXT_VARIANT (t);
  7225.             }
  7226.             }
  7227.         ;
  7228.     break;}
  7229. case 711:
  7230. #line 3882 "cp-parse.y"
  7231. { yyval.ttype = ansi_opname[ARRAY_REF];
  7232.           if (current_class_type)
  7233.             {
  7234.               tree t = current_class_type;
  7235.               while (t)
  7236.             {
  7237.               TYPE_OVERLOADS_ARRAY_REF (t) = 1;
  7238.               t = TYPE_NEXT_VARIANT (t);
  7239.             }
  7240.             }
  7241.         ;
  7242.     break;}
  7243. case 712:
  7244. #line 3894 "cp-parse.y"
  7245. {
  7246.           yyval.ttype = ansi_opname[NEW_EXPR];
  7247.           if (current_class_type)
  7248.             {
  7249.               tree t = current_class_type;
  7250.               while (t)
  7251.             {
  7252.               TREE_GETS_NEW (t) = 1;
  7253.               t = TYPE_NEXT_VARIANT (t);
  7254.             }
  7255.             }
  7256.         ;
  7257.     break;}
  7258. case 713:
  7259. #line 3922 "cp-parse.y"
  7260. {
  7261.           yyval.ttype = ansi_opname[DELETE_EXPR];
  7262.           if (current_class_type)
  7263.             {
  7264.               tree t = current_class_type;
  7265.               while (t)
  7266.             {
  7267.               TREE_GETS_DELETE (t) = 1;
  7268.               t = TYPE_NEXT_VARIANT (t);
  7269.             }
  7270.             }
  7271.         ;
  7272.     break;}
  7273. case 714:
  7274. #line 3953 "cp-parse.y"
  7275. { yyval.ttype = build1 (TYPE_EXPR, yyvsp[-1].ttype, yyvsp[0].ttype); ;
  7276.     break;}
  7277. case 715:
  7278. #line 3955 "cp-parse.y"
  7279. { yyval.ttype = ansi_opname[ERROR_MARK]; ;
  7280.     break;}
  7281. }
  7282.    /* the action file gets copied in in place of this dollarsign */
  7283. #line 457 "/usr/local/Install/supported/gnu/bison/sparc-sun-sunos4.1/lib/bison.simple"
  7284.  
  7285.   yyvsp -= yylen;
  7286.   yyssp -= yylen;
  7287. #ifdef YYLSP_NEEDED
  7288.   yylsp -= yylen;
  7289. #endif
  7290.  
  7291. #if YYDEBUG != 0
  7292.   if (yydebug)
  7293.     {
  7294.       short *ssp1 = yyss - 1;
  7295.       fprintf (stderr, "state stack now");
  7296.       while (ssp1 != yyssp)
  7297.     fprintf (stderr, " %d", *++ssp1);
  7298.       fprintf (stderr, "\n");
  7299.     }
  7300. #endif
  7301.  
  7302.   *++yyvsp = yyval;
  7303.  
  7304. #ifdef YYLSP_NEEDED
  7305.   yylsp++;
  7306.   if (yylen == 0)
  7307.     {
  7308.       yylsp->first_line = yylloc.first_line;
  7309.       yylsp->first_column = yylloc.first_column;
  7310.       yylsp->last_line = (yylsp-1)->last_line;
  7311.       yylsp->last_column = (yylsp-1)->last_column;
  7312.       yylsp->text = 0;
  7313.     }
  7314.   else
  7315.     {
  7316.       yylsp->last_line = (yylsp+yylen-1)->last_line;
  7317.       yylsp->last_column = (yylsp+yylen-1)->last_column;
  7318.     }
  7319. #endif
  7320.  
  7321.   /* Now "shift" the result of the reduction.
  7322.      Determine what state that goes to,
  7323.      based on the state we popped back to
  7324.      and the rule number reduced by.  */
  7325.  
  7326.   yyn = yyr1[yyn];
  7327.  
  7328.   yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
  7329.   if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
  7330.     yystate = yytable[yystate];
  7331.   else
  7332.     yystate = yydefgoto[yyn - YYNTBASE];
  7333.  
  7334.   goto yynewstate;
  7335.  
  7336. yyerrlab:   /* here on detecting error */
  7337.  
  7338.   if (! yyerrstatus)
  7339.     /* If not already recovering from an error, report this error.  */
  7340.     {
  7341.       ++yynerrs;
  7342.  
  7343. #ifdef YYERROR_VERBOSE
  7344.       yyn = yypact[yystate];
  7345.  
  7346.       if (yyn > YYFLAG && yyn < YYLAST)
  7347.     {
  7348.       int size = 0;
  7349.       char *msg;
  7350.       int x, count;
  7351.  
  7352.       count = 0;
  7353.       /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
  7354.       for (x = (yyn < 0 ? -yyn : 0);
  7355.            x < (sizeof(yytname) / sizeof(char *)); x++)
  7356.         if (yycheck[x + yyn] == x)
  7357.           size += strlen(yytname[x]) + 15, count++;
  7358.       msg = (char *) malloc(size + 15);
  7359.       if (msg != 0)
  7360.         {
  7361.           strcpy(msg, "parse error");
  7362.  
  7363.           if (count < 5)
  7364.         {
  7365.           count = 0;
  7366.           for (x = (yyn < 0 ? -yyn : 0);
  7367.                x < (sizeof(yytname) / sizeof(char *)); x++)
  7368.             if (yycheck[x + yyn] == x)
  7369.               {
  7370.             strcat(msg, count == 0 ? ", expecting `" : " or `");
  7371.             strcat(msg, yytname[x]);
  7372.             strcat(msg, "'");
  7373.             count++;
  7374.               }
  7375.         }
  7376.           yyerror(msg);
  7377.           free(msg);
  7378.         }
  7379.       else
  7380.         yyerror ("parse error; also virtual memory exceeded");
  7381.     }
  7382.       else
  7383. #endif /* YYERROR_VERBOSE */
  7384.     yyerror("parse error");
  7385.     }
  7386.  
  7387.   goto yyerrlab1;
  7388. yyerrlab1:   /* here on error raised explicitly by an action */
  7389.  
  7390.   if (yyerrstatus == 3)
  7391.     {
  7392.       /* if just tried and failed to reuse lookahead token after an error, discard it.  */
  7393.  
  7394.       /* return failure if at end of input */
  7395.       if (yychar == YYEOF)
  7396.     YYABORT;
  7397.  
  7398. #if YYDEBUG != 0
  7399.       if (yydebug)
  7400.     fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
  7401. #endif
  7402.  
  7403.       yychar = YYEMPTY;
  7404.     }
  7405.  
  7406.   /* Else will try to reuse lookahead token
  7407.      after shifting the error token.  */
  7408.  
  7409.   yyerrstatus = 3;        /* Each real token shifted decrements this */
  7410.  
  7411.   goto yyerrhandle;
  7412.  
  7413. yyerrdefault:  /* current state does not do anything special for the error token. */
  7414.  
  7415. #if 0
  7416.   /* This is wrong; only states that explicitly want error tokens
  7417.      should shift them.  */
  7418.   yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
  7419.   if (yyn) goto yydefault;
  7420. #endif
  7421.  
  7422. yyerrpop:   /* pop the current state because it cannot handle the error token */
  7423.  
  7424.   if (yyssp == yyss) YYABORT;
  7425.   yyvsp--;
  7426.   yystate = *--yyssp;
  7427. #ifdef YYLSP_NEEDED
  7428.   yylsp--;
  7429. #endif
  7430.  
  7431. #if YYDEBUG != 0
  7432.   if (yydebug)
  7433.     {
  7434.       short *ssp1 = yyss - 1;
  7435.       fprintf (stderr, "Error: state stack now");
  7436.       while (ssp1 != yyssp)
  7437.     fprintf (stderr, " %d", *++ssp1);
  7438.       fprintf (stderr, "\n");
  7439.     }
  7440. #endif
  7441.  
  7442. yyerrhandle:
  7443.  
  7444.   yyn = yypact[yystate];
  7445.   if (yyn == YYFLAG)
  7446.     goto yyerrdefault;
  7447.  
  7448.   yyn += YYTERROR;
  7449.   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
  7450.     goto yyerrdefault;
  7451.  
  7452.   yyn = yytable[yyn];
  7453.   if (yyn < 0)
  7454.     {
  7455.       if (yyn == YYFLAG)
  7456.     goto yyerrpop;
  7457.       yyn = -yyn;
  7458.       goto yyreduce;
  7459.     }
  7460.   else if (yyn == 0)
  7461.     goto yyerrpop;
  7462.  
  7463.   if (yyn == YYFINAL)
  7464.     YYACCEPT;
  7465.  
  7466. #if YYDEBUG != 0
  7467.   if (yydebug)
  7468.     fprintf(stderr, "Shifting error token, ");
  7469. #endif
  7470.  
  7471.   *++yyvsp = yylval;
  7472. #ifdef YYLSP_NEEDED
  7473.   *++yylsp = yylloc;
  7474. #endif
  7475.  
  7476.   yystate = yyn;
  7477.   goto yynewstate;
  7478. }
  7479. #line 3958 "cp-parse.y"
  7480.  
  7481.